我正在使用NodeJ和本机MongoDB驱动程序来创建应用程序。 我想确保一个具有特定条件的记录存在与否,我想知道哪种方法更好?
collection.find({...}).count(function(err, count){
if(count > 0) {
//blah blah
}
})
或
collection.findOne({...}, function(err, object){
//blah blah
})
答案 0 :(得分:1)
见this question。我相信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
是你的朋友。