在 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 许可协议

阅读 520
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题