[英]Insert into mongodb with perl
我寫了一個腳本將項目插入mongodb
#!/usr/bin/perl
use strict;
use warnings;
use MongoDB;
use Data::Dumper;
my $hostname = "localhost";
my $port = 27017;
my $conn = MongoDB::Connection->new( "host" => "$hostname",
"port" => $port );
my $db = $conn->test;
my $user_stats = $db->test_stats;
# Insert line
$user_stats->insert({'user_id' => 123,
'pointA'=> 12,
'pointB' => 13,
'total' => 25, } );
my $myStr = $user_stats->find_one();
print Dumper($myStr);
該代碼運行良好。 但是當我更改為insert line
my $a = "{'user_id' => 123,
'pointA' => 12,
'pointB' => 13,
'total' => 25}";
$user_stats->insert($a);
由於出現錯誤,它不起作用: not a reference at /usr/local/lib/perl5/site_perl/5.12.3/sun4-solaris/MongoDB/Collection.pm line 296.
MongoDB::Collection
上的insert
方法需要一個哈希引用:
插入($ object,$ options?)
將給定的
$object
插入數據庫並返回其id值。$object
可以是哈希引用,對具有偶數個元素的數組的引用或Tie::IxHash
。
因此,通常的方法是使用哈希引用,而您的$a
是字符串,而不是哈希引用。 其他選項是可以很容易地“投射”到哈希引用(即其形式為[key, value, key, value, ...]
)或Tie::IxHash
(它是一個保持順序的哈希值); 您的$a
字符串也不是其中之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.