使用mongoose更新特定的子doc属性的值

时间:2017-05-04 13:51:43

标签: mongodb mongoose mongoose-schema

使用以下mongo对象,

我如何找到_id为' 590ac6b7663350948be1c085' 590ac6b7663350948be1c085'然后在他们的朋友阵列中找到一个id为' 590ac6ac663350948be1c083'然后将其status属性设置为1?



User.findOne({'_id': '590ac6b7663350948be1c085'}).then(user => {
    let friend = user.friend.id('590ac6ac663350948be1c083');
    friend.status = 1;
    return user.save();
});




我已经尝试了



var UserSchema = new Schema({
  username   : String,
	friends    : 
  [{ 
    id: { type: Schema.Types.ObjectId, ref: 'User'}, 
    status: Number 
  }]
});




现在架构很简单



User
.findOne({ 'friends._id' : '590ace171aa0aeb58f798466' })
.then(user => {
console.log(user)




或者是更好的方法来查找该特定朋友对象的_id然后更新?如果是这样,我将如何做到这一点,因为此查询返回整个用户对象



enabled




0 个答案:

没有答案