猫鼬在嵌套子文档中的数组中推入



我有这样的模式:

var UserSchema = new Schema({
  profile: {
    firstName: {type: String, trim: true, required: true },
    lastName: {type: String, trim: true, required: true },
    city: {type: String}
    age: {type: Number, min: 13, max: 120},
    image: {type: String,trim: true}
  },
  friends:{
    accepted:[{
       id: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
       dateAccepted: {type: Date, default: Date.now}
    }]
  }
}

如何在好友中推送数据。

我只成功使用findOne方法:

User.findOne({
  _id: id
  },function(err,user){
    user.friends.accepted.push(newUser._id);
    user.save(function(err){if(err) return err;})
  });

应该可以:

User.findOneAndUpdate({
  _id: id
}, {
  $push: {
    "friends.accepted": {
      id: newUser._id
    }
  }
},
{
  new: true
},
function (err, user) {
  console.log(err, user);
});

也可以使用User。更新,但回调的第二个参数将是更新查询的结果:{ ok: 1, nModified: 1, n: 1 }

使用findOneAndUpdate允许你获得用户对象。在选项中传递new: true允许您获得更新的用户对象,而没有它,您将获得原始的。

相关内容

  • 没有找到相关文章

最新更新