使用节点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。
你可以迭代游标对象来得到这样的_id:
var cursor = db.inventory.find( {} ); while (cursor.hasNext()) { console.log(tojson(cursor.next())._id); }
幸运的是,因为它只是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; } );
这个function在很多方面模仿了原生的Array.prototype.map
(如果你不熟悉这个方法,我会build议阅读这些文档)。
- 如何正确地发送对象通过AJAX使用bodyParser在node.js express?
- 用指针findmongoose对象
- 我使用auth0进行用户身份validation,并且我有一个针对CRUDpost(title,img,desc)的API。 如何进行CRUD API的authentication调用?
- NodeJS模块初始化
- 节点js中的date格式转换
- 是否有一个Node.js等价于PHP的include,所以包含的代码可以访问父文件的variables?
- 在运行依赖关系之前,是否可以在一个gulp任务中分配一个variables?
- 在Cytoscape.js中查找节点之间的唯一对
- Sinon意外的断言错误