mongo find操作返回一个空对象

时间:2014-05-28 02:20:20

标签: node.js mongodb

db.collection("mscCollection").find(function (err, cur) {
    console.log(JSON.stringify(cur))
})

当我运行它时,它返回一个空对象,即使该集合包含文档并且能够使用shell找到它们

2 个答案:

答案 0 :(得分:4)

它实际上是一个游标对象,而不是一个空对象。因为你在它上面调用JSON.stringify,它将从中删除所有函数并打印它。检查它的更好方法是直接在其上调用console.log:console.log(cur);

使用find方法,如果你想获得所有文件,你必须调用cursor.toArray(callback)方法。

要获取光标,要么为find方法注册回调,要么使用find result(仅限其中一个。如果注册了回调,则不返回任何内容):

要么:

collection.find().toArray(function (err, docs) {
  console.log(err, docs);
});

或者这个:

collection.find(function (err, cursor) {
  cursor.toArray(function (err, docs) {
    console.log(err, docs);
  });
});

答案 1 :(得分:-1)

此处提供了功能签名:

http://docs.mongodb.org/manual/reference/method/db.collection.find/#db.collection.find

你需要这样做:

db.mscCollection.find({}).forEach(function (obj) {  printjson(obj) })

您需要使用{}查找所有文档,然后使用forEach

迭代结果集