如何在节点js中获取mongoDB集合大小?

时间:2016-12-15 09:19:28

标签: node.js mongodb

我正在尝试连接到mongoDB数据库,并在集合上创建一些进程,并在处理完所有集合项时关闭集合。当我试图接收array.length时,我得到了未定义。

Db = require('mongodb').Db;
Server = require('mongodb').Server;
const db = new Db(DB_NAME, new Server(HOST, PORT));
// connect to mongoDB
db.open(function (err, db) {
  const Collection = db.collection(COLLECTION_NAME);
  var items = Collection.find({});
  var itemsLength = items.lebgth;
  var itemsProcessed = 0;
  items.forEach((item, index, array) => {
    // some process like:
    Collection.update({query}, {set}, callback)
    itemsProcessed++;
    if(itemsProcessed == array.length){
      db.close();
      // close connection if all items were processed
    }
  });
});

还有其他办法吗?

3 个答案:

答案 0 :(得分:2)

只需使用db.collection.count()

即可

答案 1 :(得分:1)

修改

您可以使用forEach的可选回调,如文档here所示:

items.forEach((item) => {
    // some process...
}, (err) => db.close()); // close connection if all items were processed

答案 2 :(得分:0)

检查this

Collection.stat()