我正在尝试将一个对象推送到 Mongoose 中另一个数组内的数组。基本上喜欢评论评论。这是我的架构的结构:
const Schema = new mongoose.Schema ({
name: {type: String, required: true},
description: {type: String, required: true},
topics: [{name: String, description: String, responses: [{name: String, description: String}]
});
这就是我到目前为止所尝试的:
Model.findOneAndUpdate({$and: [{_id: req.body.classId}, {topics: {$elemMatch: {_id: req.body.id}}}]},
{$push: {responses: {name: req.body.name, description: req.body.description}}},
function(err, result){
res.send(result);
});
这不会产生任何错误,
result
不是空的是我console.log
它。我也尝试在没有$and
的情况下这样做,就像这样:{_id: req.body.classId, 'topics._id': req.body.id'}
也没有用。
你也能更深入一点吗?
如果要返回更新后的文件,您应该指定
{ new: true }
:
Model.findOneAndUpdate(
{
_id: req.body.classId,
'topics._id': req.body.id
},
{
$push: {
responses: { name: req.body.name, description: req.body.description },
},
},
{ new: true },
function (err, result) {
res.send(result);
}
);