gpt4 book ai didi

mongodb - Mongoose 更新 : obtaining pushed subdocument's _id

转载 作者:可可西里 更新时间:2023-11-01 10:42:44 26 4
gpt4 key购买 nike

具有以下更新查询:

var template = {name:'my_name', ...};
ApplicationModel.update({
_id: idApplication,
'templates.name': { '$ne': template.name }
},
{
$push: { templates: template }
}, function(err, raw) {
if (err) {
return callback(err);
}
...
callback();
});

ApplicationModel 中有一个名为 templates 的数组,我在其中推送 template 对象,Mongoose 分配其中的每一个自动对象 _id

有没有办法在查询的回调函数中获取这个_id

最佳答案

在这种情况下,我们通常只是手动创建 ObjectId,因此我们在保存之前拥有它:

var template = {name:'my_name', ...};
var myNewId = new mongoose.Types.ObjectId();
template._id = myNewId;

ApplicationModel.update({
_id: idApplication,
'templates.name': { '$ne': template.name }
},
{
$push: { templates: template }
}, function(err, raw) {
if (err) {
return callback(err);
}
// myNewId is available here...

callback();
});
};

无论如何,ObjectId 始终由客户端中的 mongoDriver 创建,因此实际上在代码中显式执行它或让 MongoDriver 处理它之间几乎没有区别。

关于mongodb - Mongoose 更新 : obtaining pushed subdocument's _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33802232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com