簡體   English   中英

mongoDB:無法將字段添加到數組對象

[英]mongoDB: Can't add an field to an array object

這是我的數據庫文檔的樣子:

{
    "_id" : "aN2jGuR2rSzDx87LB",
    "content" : {
        "en" : [
            {
                "content" : "Item 1",
                "timestamp" : 1518811796
            }
        ]
    }
}

現在,我需要在content.en數組的第一個對象中添加另一個字段。 通過ID選擇文檔本身。 結果應為:

{
  "_id" : "aN2jGuR2rSzDx87LB",
  "content" : {
    "en" : [
      {
        "content" : "Item 1",
        "timestamp" : 1518811796,
        "user" : {
          "id" : 'userId'
        }
      }
    ]
  }
}

我試圖這樣做,但沒有任何反應。 我什至沒有收到錯誤消息。

Content.update(
  { _id: id },
  {
    $addToSet: {
      'content.en.0.user': {
        id: 'userId',
      }
    }
  }
)

我也想為語言使用一個變量。 我怎么做? 諸如'content.' + language + '.0.user''content.' + language + '.0.user'東西'content.' + language + '.0.user' 'content.' + language + '.0.user' ...

$ addToSet在您要向數組添加內存時很有用。 在您的情況下,您想要修改數組的第一個元素(在索引0 ),因此您應該簡單地使用$ set (這是字段更新運算符):

Content.update(
   { _id: "aN2jGuR2rSzDx87LB" },
   {
      $set: {
         "content.en.0.user": {
         id: "userId",
      }
   }
 }
)

暫無
暫無

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

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