在 Mongoose/JS 中将对象推送到另一个数组中的数组

问题描述 投票:0回答:1

我正在尝试将一个对象推送到 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'}
也没有用。 你也能更深入一点吗?

javascript node.js mongodb mongoose multidimensional-array
1个回答
0
投票

如果要返回更新后的文件,您应该指定

{ 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);
  }
);
© www.soinside.com 2019 - 2024. All rights reserved.