簡體   English   中英

使用MongoDB和Mongoose更新子數組屬性

[英]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
    });

我看到有人說,一旦他們找回了用戶,他們就不得不對子陣列做一個f​​oreach,但是沒有辦法直接用mongoose和mongodb來做這樣的處理嗎?

感謝您的回答 !

如果你這樣做:

{$set:{playlist:{active:false}}}

然后,當您$set playlist參數時,您將替換整個 playlist數組。 您應該能夠執行以下操作,只需向playlist添加一個額外字段:

{$set:{"playlist.active": false}}

在這里,您不是要修改playlist參數,而只是指示MongoDB對playlistactive字段執行某些操作。

嘗試這個:

{$set: {'playlist.$.active': false}

在這里閱讀它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM