$ push在Mongoose中更新嵌套数组并返回添加的对象

时间:2016-02-11 07:48:21

标签: arrays node.js mongodb mongoose nested

我的MongoDB的结构是这样的......

Database (Job Application Database)
   ...
   Nested Array of Objects (Applicants)
      ...
      Another Nested Array of Objects (Comments)

我有这个代码可以正常更新嵌套数组

JobApplication.findOneAndUpdate(
   { _id: new ObjectId(data.job_app_id), 'applicants._id' : new ObjectId(data.selected_applicant_id) },
   {'$push': {'applicants.$.comments': data.message}},
   {safe: true, upsert: true, new : true},
   function(err, model) {
        console.log(err);
        console.log(model);
   }
)

我遇到的问题是它没有返回添加的对象。我不仅仅返回data.message的原因是因为我需要对象的_id。有没有办法返回添加的对象?

1 个答案:

答案 0 :(得分:0)

`JobApplication.findOneAndUpdate(
   { _id: new ObjectId(data.job_app_id), 'applicants._id' : new ObjectId(data.selected_applicant_id) },
   {'$push': {'applicants.$.comments': data.message}},
   {safe: true, upsert: true, new : true},
   function(err, model) {
if(err) return JSON.stringify(err)
        if(model){
console.log(model) }
)`