MongoDB计数集合Node.js

时间:2012-02-16 19:51:21

标签: node.js mongodb

我试图通过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字段为空(即查找整个集合的计数)时才有效。因此,如果我尝试使用任何类型的选择器运行查找,查找工作,但它拒绝依赖返回的光标。从我在网上看到的,这看起来是正确的方法,但显然有些不对劲。感谢您的帮助!

1 个答案:

答案 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);
    });
  });
};