[英]Updating subarray property with MongoDB and Mongoose
我是Mongoose和MongoDB的新手,我正在嘗試更新以下模型的值:
var userSchema = mongoose.Schema({
username : String,
playlist : [{
name : String,
active : {type: Boolean, default: false},
}]
});
我想要做的是將一個用戶的所有播放列表設置為false,然后只將一個設置為true。 通過執行以下請求,它會刪除播放列表中的信息:
this.model('User').findByIdAndUpdate(userId, {$set:{playlist:{active:false}}})
.exec(
function(err, user){
//DO callback treatment here
});
我看到有人說,一旦他們找回了用戶,他們就不得不對子陣列做一個foreach,但是沒有辦法直接用mongoose和mongodb來做這樣的處理嗎?
感謝您的回答 !
如果你這樣做:
{$set:{playlist:{active:false}}}
然后,當您$set
playlist
參數時,您將替換整個 playlist
數組。 您應該能夠執行以下操作,只需向playlist
添加一個額外字段:
{$set:{"playlist.active": false}}
在這里,您不是要修改playlist
參數,而只是指示MongoDB對playlist
的active
字段執行某些操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.