2017-03-25 91 views
0

我想知道我怎麼可以更新喜歡與貓鼬數組:如何更新此模型包含對象的貓鼬陣列

var postSchema = new mongoose.Schema({ 
    author: String, 
    content: String, 
    date: String, 
    likes: [{theID: String}], 
    numDate: Number 
}); 

var UserSchema = mongoose.Schema({ 
    username: { 
     type: String 
    }, 
    password: { 
     type: String 
    }, 
    email: { 
     type: String 
    }, 
    first: { 
     type: String 
    }, 
    posts: [postSchema], 
    last: { 
     type: String 
    }, 
    followers: [{theID: String}], 
    following: [{theID: String}], 
    img: { data: Buffer, contentType: String }, 
    admin: {type: Boolean, default: false} 

}); 

我可以把東西像新職位在某個用戶通過 數據庫這樣做:

User.update({_id: req.user.id}, { 
    $push: {"posts": {_id : req.body.theData}} 
}, function(err, user){ 
    res.redirect('profile'); 
}); 

有沒有類似的方法可以讓我看一個特定的用戶,然後具體職位用戶擁有和更新,以推動一個字符串數組喜歡?

回答

0

首先,你需要選擇你想要更新的帖子,喜歡不喜歡,你可以在帖子{_id: req.user.id,_id:posts._id}的_id的幫助下做到這一點,那麼你將需要更新像數組,可以這樣做{$push: {"posts.$.likes": req.user.anotherUserId}} //anotherUserId is of user who liked it.相同的方式如果用戶不喜歡該帖子以從數組中刪除ID,則可以拉取用戶ID。

User.update({_id: req.user.id,_id:posts._id}, { 
     $push: {"posts.$.likes": req.user.id} 
    }, function(err, user){ 

    });