findOne有效,但没有全部/找到

时间:2015-01-07 16:03:16

标签: node.js mongodb

findOne工作正常

db.collection('updates', function (err, collection) {
        collection.findOne({
            author: req.user._id
        }, function (err, doc) {
        }
 });

我试图获取所有文件,而不只是一个。我正在改变findOne找到(如下所示)并且它不起作用。我该如何解决这个问题?

        db.updates.find({
            author: req.user._id
        }, function (err, doc) {
        }

错误讯息: 它说不能叫方法"找到"未定义的,意味着该集合未被识别。

更新: 这不起作用:

db.collection('updates', function (err, collection) {
        collection.find({ //changed findOne to find
            author: req.user._id
        }, function (err, doc) {
        }
 });

1 个答案:

答案 0 :(得分:4)

看起来您正在使用Native MongoDB Node.JS Driver来查询数据库。 According to its readme,您应该使用.toArray()方法实例化MongoDB cursor,从.find()调用返回:

collection.find({
  author: req.user._id
}).toArray(function (err, docs) {
  // docs is an Array of documents here
});

如果您遇到Native MongoDB Node.JS驱动程序的问题,我建议使用更直观的API使用一些包装器,例如: