Mongodb模块怎么查询多条?
use MongoDB;
use Data::Dumper;
my $connection = MongoDB::Connection->new( host => 'localhost', port => 27017 );
my $database = $connection->foo;
my $collection = $database->bar;
$collection->insert( { 'id' => '1', 'data' => 'n1' });
$collection->insert( { 'id' => '1', 'data' => 'n2' });
my $data = $collection->find();
print Dumper $data;
在文档里只找到find_one方法,只能查询出一条记录
=item C<SELECT * FROM users>
$db->users->find;
文档里的find方法
my $data = $collection->find();
print Dumper $data
也没有数据记录返回,只有数据库信息
> db.bar.find()
{ "_id" : ObjectId("4f869e4a0933a99d63000000"), "data" : "n1", "id" : "1" }
{ "_id" : ObjectId("4f869f4c93bda4b563000001"), "data" : "n2", "id" : "1" }
数据库是有2条记录的
这个模块能不能查询多条? 本帖最后由 sjdy521 于 2012-04-12 18:16 编辑
先说下我的不理解的地方,望指教
MongoDB这玩意应该是非关系型数据库吧,可以一个key对应两个value?不应该是一个key对应一个value?
我对nosql不是非常熟悉,请熟悉的人指导下我。。
另外,看cpan上 这个模块只提供了一个find_one的方法,假如真的可以存在多条记录的话。
那么是不是有可能类似 while($object->find_one){}这种形式循环取出所有数据?(前提是find_one每次会取出不同的一个,作者没有说明这个特性。。) 但是执行 print my $data = $collection->find({'id' => '1'})->count();
2
他的确是有多条记录的 前几天刚看了下,应该是:my $data = $collection->find();
my $i = 0;
while (my $object = $data->next) {
foreach $key(keys %{$object}){
print "the $i++ result is $key => ${$object}{$key}\n";
}
} 回复 4# myeverthing
多谢 要的就是这个 回复 5# sai9924
你就是要的那个??
find是查询出所有的记录,你要的是id=1的所有记录啊! 回复 3# sai9924
find() 可以传递参数? 回复 7# sjdy521
$collection->find({'id' => '1'});
find 可以传递参数
页:
[1]