使用节点js的Mongo文档的文档ID

时间:2016-01-11 07:16:32

标签: javascript node.js mongodb

以下是检索集合中所有文档的代码。

db.collection('movies', function(err, collectionref) {          
    // find all documents in a collection that have foo: "bar"
    var cursor = collectionref.find({});
    cursor.toArray(function(err, docs) {
        // gets executed once all items are retrieved
        res.render('movie', {'movies': docs});
    });
});

我希望使用节点js集合中所有文档的id。

2 个答案:

答案 0 :(得分:1)

幸运的是,由于它只是JavaScript,因此您可以获得正常的集合迭代器:

// find all documents that are "movies"
db.movies.find({})
.map(function(doc) {
  // iterate and return only the _id field for each document
  return doc._id;
});

更正式的MongoDB-ish名称是cursor.map,其中:

  

将函数应用于游标访问的每个文档,并将连续应用程序的返回值收集到数组中。

我提供的链接中的文档中的示例也很清楚:

db.users.find().map( function(u) { return u.name; } );

此功能在很多方面模仿原生Array.prototype.map(如果您不熟悉该方法,我建议您阅读这些文档。)

答案 1 :(得分:1)

您可以迭代游标对象以获取_id,如下所示:

var cursor = db.inventory.find( {} );
while (cursor.hasNext()) {
  console.log(tojson(cursor.next())._id);
}