簡體   English   中英

(MongoDB / Mongoose)增加對象數組中的值

[英](MongoDB / Mongoose) Increment a value in an array of objects

我有一個看起來像這樣的文檔:

{
  "id": "12345",
  "channels": [
    {
      "id": "67890",
      "count": 1
    }
  ]
}

我想要做的是將給定的通道計數加一。 所以一個用戶發送一條消息,我查找用戶,在“channels”數組中通過“id”找到正確的頻道,並將“count”加一。

我嘗試了以下查詢:

UserModel.findOneAndUpdate({id: this.id}, 
  {'channels.id': channel.id}, 
  {$set: {$inc: {'channels.$.count': 1}}}

它沒有失敗,令人驚訝。 但它也沒有增加計數。

需要兩個修復:查詢必須是單個 object 並且$inc是一個單獨的運算符,因此您不需要$set

UserModel.findOneAndUpdate({id: this.id, 'channels.id': channel.id},
    { $inc: {'channels.$.count': 1}})

暫無
暫無

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

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