How to update subfield of an object field given id of parent and child both in MongoDB?

Viewed 26

I want to update a subfield(present as object) entry given the id of the parent as well as child object.

const QuestionSchema = mongoose.Schema({    //_id1
  ...
  ...
  comment: [{                               //_id2
          commentBody: String,
          ...
          ...
           }]
  }]

Above shown is the schema and I want to update commentBody of a particular field as object "comment" , given <_id1> as id of question and <_id2> as id of comment.
I have tried as a beginner but it is not working. Please configure the syntactic or logical error in this code.

const updatedQuestioncomment = await Questions.findByIdAndUpdate({ "_id": _id1 }, { "comment._id": id2 }, { $set: { 'comment': [{ 'commentBody': commentBody }] } });

Thank you!!

1 Answers

I believe this is what you want...

const doc = await Questions.findOneAndUpdate(
  {'_id': _id1, 'comment._id': id2},
  { '$set': { 'comment.$.commentBody': 'CHANGED!' } }
);
Related