簡體   English   中英

用perl插入mongodb

[英]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::Collectioninsert方法需要一個哈希引用:

插入($ object,$ options?)

將給定的$object插入數據庫並返回其id值。 $object可以是哈希引用,對具有偶數個元素的數組的引用或Tie::IxHash

因此,通常的方法是使用哈希引用,而您的$a是字符串,而不是哈希引用。 其他選項是可以很容易地“投射”到哈希引用(即其形式為[key, value, key, value, ...] )或Tie::IxHash (它是一個保持順序的哈希值); 您的$a字符串也不是其中之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM