我需要将一个新文档推入一个数组并使用他的_id。
现在我正在使用findOneAndUpdate,我知道我可以使用{new:true}但我只需要创建的文档而不是父文档。
到目前为止这是我的代码
User.findOneAndUpdate(
{
'posts._id': req.params.id
},
{
$push: {
'posts.$.comments': {
from: {
_id: req.user._id,
username: req.user.username,
},
body: req.body.commentBody
}
}
},
err => {
if (err) console.log(err)
// Do something with ObjectId
}
);
提前致谢。
答案 0 :(得分:1)
findOneAndUpdate
回调为您提供了更新的文档。
你有帖子_id
。您可以使用它来查找要添加注释的帖子。在推送注释时,它将是post数组中的最后一个元素。
var mypost = doc.posts.find(function(post){
return post._id.toString()==req.params.id
});
console.log(mypost.comments[mypost.comments.length]._id)