2016-01-11 59 views
2

以下是檢索集合中所有文檔的代碼。使用節點js的Mongo文檔的文檔ID

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。

+1

你在說什麼?_id如果是的話,那麼它在你的文檔 – Subburaj

+0

是的,我想_id..how迭代文檔來獲取所有ID。 – user2947

回答

1

可以遍歷光標對象上得到_id這樣的:

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

謝謝哥們.. :) – user2947

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十歲上下的名字是cursor.map,其中:

應用功能遊標訪問的每個文檔將來自連續應用程序的返回值收集到數組中。

在我提供的鏈接文檔的例子也相當明確:

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

該功能模仿在許多方面本機Array.prototype.map(我建議閱讀這些文檔,以及如果你不熟悉那種方法)。