我正在尝试向Object字段下的Objects数组添加元素
这在我的猫鼬“ Utilisateur”模式中:
所以我在这里要做的是向“ lien_vers”数组中添加一个元素 这是我写的代码
Utilisateur.findOneAndUpdate({ _id: mongoose.Types.ObjectId(auteur._id) },
{
$push: {
'relations.lien_vers': {
metadonnees: { nom_societe: societePersonalId },
identite: auteur._id.toString(),
canons: [""]
}
}
}, { upsert: true }
, function (error, doc) {
if (err) {
console.log("Something wrong when updating data!", err);
}
console.log("updated", doc.relations);
});
我没有任何错误,但是没有任何变化!似乎更新无法正常工作 有帮助吗
答案 0 :(得分:1)
默认情况下,
findOneAndUpdate()
返回应用更新之前的文档。如果设置了new: true
,则findOneAndUpdate()
会在应用更新后为您提供对象。
您的代码看起来不错,记录已在您的db中更新,它只是在回调之前返回更新之前的文档。要获取更新的文档,只需在选项中添加new: true
。
答案 1 :(得分:0)
最终,该解决方案对我有用
我坚持要添加{
_id: ObjectID('SOMEid'),
firstName:"x",
lastName:"y",
email:"x@z.com",
username:"xxx",
password:"xyz",
books: []
}
,以便markModified()
方法可以检测到更改
save()