使用count()或findOne()获得更好的性能?

我正在使用NodeJs和本地MongoDB驱动程序来创build一个应用程序。 我想确保一个具有特定条件的logging是否存在,我想知道哪个方法更好?

collection.find({...}).count(function(err, count){ if(count > 0) { //blah blah } }) 

要么

 collection.findOne({...}, function(err, object){ //blah blah }) 

看到这个问题 。 我相信find limit(1)是你的方式去。 (如果你想获得实际的文档数据查询,然后使用findOne )。

mongodb-native ,代码看起来像这样

 function recordExists(selector, callback) { collection.find(selector, {limit: 1}, function(err, cursor) { if (err) return callback(err); cursor.count(function(err, cnt) { return callback(err, !!cnt); }); }); } 

我对此有点困惑: collection.find({...}).count 。 原生驱动程序允许这样做吗? 是cursor.count ? 无论如何, limit是你的朋友在这里。