在 NodeJS 的 Mongo 数据库中获取插入文档的 _id

新手上路,请多包涵

我使用 NodeJS 在 MongoDB 中插入文档。使用 collection.insert 我可以将文档插入数据库,如下代码所示:

 // ...
collection.insert(objectToInsert, function(err){
   if (err) return;
   // Object inserted successfully.
   var objectId; // = ???
});
// ...

我怎样才能得到插入对象的 _id

有什么方法可以获取 _id 而无需插入最新对象 _id

假设同时有很多人访问数据库,我不能确定最新的id是插入的对象的id。

原文由 Ionică Bizău 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 523
2 个回答

collection.insert 的回调有第二个参数,它将返回插入的一个或多个文档,其中应该有_id。

尝试:

 collection.insert(objectToInsert, function(err,docsInserted){
    console.log(docsInserted);
});

并检查控制台以了解我的意思。

原文由 georgedyer 发布,翻译遵循 CC BY-SA 3.0 许可协议

比使用第二个参数回调 collection.insert 更短的方法是使用 objectToInsert._id 返回 _id 函数,假设回调函数成功手术)。

NodeJS 的 Mongo 驱动程序将 _id 字段附加到原始对象引用,因此很容易使用原始对象获取插入的 id:

 collection.insert(objectToInsert, function(err){
   if (err) return;
   // Object inserted successfully.
   var objectId = objectToInsert._id; // this will return the id of object inserted
});

原文由 Ionică Bizău 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题