我是mongodb的新手。我认为mongo shell和php mongo驱动程序之间存在一些使用差异。
我可以在mongo shell中使用多个条件。例如:
db.coll.count( { _id:ObjectId('4fb27b9c876b88e53d000000'),
'items.title':'example' } );
但我不能用php mongo驱动程序进行同样的计数。我尝试了这个,但它返回0。
$coll->count( array('_id'=>new MongoID('4fb27b9c876b88e53d000000'),
'items.title'=>'example' ) );
但是,如果我使用find()然后使用count(),我会得到相同的计数结果:
$coll->find( array('_id'=>new MongoID('4fb27b9c876b88e53d000000'),
'items.title'=>'example' ) ).count();
我得到了我想要的东西,但我认为链接方式可能效率低下。我错了吗?
您如何计算多个标准?
答案 0 :(得分:3)
一个代码示例胜过千言万语。看:
% mongo
MongoDB shell version: 2.1.1
connecting to: test
> db.foo.count
function (x) {
return this.find(x).count();
}
这回答了你的问题吗? :)
答案 1 :(得分:0)
您必须首先使用find()和count()
db.foo.count() -- will return 0, because db.foo it is only accessing the collection
db.foo.find($where).count() --- will return the number of documents in the collection
这是怎么做的。