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

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查询和回调)。

最佳答案

你可以使用猫鼬的.save来达到这个目的。在第一个模型中插入对象,保存它,并在收到成功回调后,将其_id用于第二个模型,

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

不用猫鼬也能做到
 db.myCollection.insert(objectToBeSaved, function(err, savedObject) {
   let accessId = savedObject._id;
   db.refCollection.insert({refId: accessId}); //or something similar
 })

关于node.js - 创建过程中如何访问MongoDB对象ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48778421/

10-12 15:49