以下是检索集合中所有文档的代码。
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。
答案 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);
}