如何在mongo php中使用多个条件进行计数

时间:2012-05-16 19:00:41

标签: php mongodb

我是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();

我得到了我想要的东西,但我认为链接方式可能效率低下。我错了吗?

您如何计算多个标准?

2 个答案:

答案 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

这是怎么做的。