我试图通过Node.js与MongoDB交互,并且在count()方法上遇到了一些麻烦。我正在使用node-mongodb-native,看起来我正在做的事应该起作用。我的代码示例:
var get_total_num_docs = function(db_client, query, cb){
db_client.collection(query['collection'], function(e, coll) {
coll.find(query.params, query.options, function (e, cursor) {
cursor.count(function (e, count) {
console.log(count);
return cb(e, count);
});
});
});
};
我确信一切都存在(aka coll和cursor都是定义的),但它只有在我的query.params字段为空(即查找整个集合的计数)时才有效。因此,如果我尝试使用任何类型的选择器运行查找,查找工作,但它拒绝依赖返回的光标。从我在网上看到的,这看起来是正确的方法,但显然有些不对劲。感谢您的帮助!
答案 0 :(得分:24)
如果您不需要光标,则应编写如下代码:
var get_total_num_docs = function(db_client, query, cb){
db_client.collection(query['collection'], function(e, coll) {
coll.find(query.params, query.options).count(function (e, count) {
console.log(count);
return cb(e, count);
});
});
};