如何在创建过程中访问MongoDB对象ID?

时间:2018-02-14 01:41:52

标签: node.js database mongodb mongoose ref

我有一个网站,我想做这样的事情:

myModel.create({myObject}); //I want to access the automatically created objectId of this new document
refModel.create({refId:somehowAccessId});
//Or, without Mongoose
db.myCollection.insert({myObject});
db.refCollection.insert({refId:somehowAccessId})

如何完成(最好不使用find查询和回调)。

1 个答案:

答案 0 :(得分:1)

您可以将mongoose的.save用于此目的。在第一个模型中插入对象,保存它,并在收到成功回调后,将其_id用于第二个模型,

let model = new myModel(myObject);
model.save(function(err, savedObject) {
   let accessId = savedObject._id;
   refModel.create({refId: accessId}); //or something similar
})

可以在不使用mongoose

的情况下完成同样的操作
 db.myCollection.insert(objectToBeSaved, function(err, savedObject) {
   let accessId = savedObject._id;
   db.refCollection.insert({refId: accessId}); //or something similar
 })