leoxqing 发表于 2011-03-25 13:51

perl操作Mongodb问题?

# vi mongo.pl
#!/usr/bin/perl -w
use strict;
use MongoDB;
use MongoDB::OID;
my $conn = MongoDB::Connection->new("host" => "192.168.110.1:27017","username=>pstkf","passname=>pstkf");
my $database=$conn->pst;
my $coll = $database->get_collection('UsersInfo');
my $data = $database->find_one();
print "$data";

执行报错
# ./mongo.pl
Can't locate object method "UsersInfo" via package "MongoDB::Database" at ./mongo.pl line 7.
提示找不到UsersInfo这个方法,但是UsersInfo是表名。

2gua 发表于 2011-03-25 15:41

都开始用上了Mongodb。:emn18:

alabos 发表于 2011-03-26 13:30

get_collection

这个不是MongoDB 的方法吧。


看一下手册 http://search.cpan.org/~kristina/MongoDB-0.42/lib/MongoDB.pm
use MongoDB;

my $connection = MongoDB::Connection->new(host => 'localhost', port => 27017);
my $database   = $connection->foo;
my $collection = $database->bar;
my $id         = $collection->insert({ some => 'data' });
my $data       = $collection->find_one({ _id => $id });

=head
foo <--   db_name
bar <--   tbl_name
=cut

leoxqing 发表于 2011-03-30 09:29

回复 3# alabos


    谢谢楼上的回复,我用你的代码测试了一下,提示找不到bar这个方法。我怀疑是不是perl MongoDB这个模块没装好。
cpan> m MongoDB
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
Database was generated on Mon, 28 Mar 2011 13:33:29 GMT
Module id = MongoDB
    CPAN_USERIDKRISTINA (Kristina Chodorow <kristina@10gen.com>)
    CPAN_VERSION 0.42
    CPAN_FILE    K/KR/KRISTINA/MongoDB-0.42.tar.gz
    MANPAGE      MongoDB - Mongo Driver for Perl
    INST_FILE    /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/MongoDB.pm
    INST_VERSION 0.42
页: [1]
查看完整版本: perl操作Mongodb问题?