首頁 >後端開發 >php教程 >如何使用 $push 將新項目新增到 MongoDB 中的巢狀數組?

如何使用 $push 將新項目新增到 MongoDB 中的巢狀數組?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-14 05:14:16259瀏覽

How to Add a New Item to a Nested Array in MongoDB using $push?

MongoDB:使用$push 將資料加入巢狀陣列

在MongoDB 中,您可以儲存複雜的資料結構,例如嵌套數組。當您需要為這些陣列新增元素時,可以使用 $push 運算子。

問題:

您想要在一個文件內新增新元素。您的文件在播放清單中包含嵌套的音樂曲目陣列。您想要將新曲目新增至現有播放清單。

範例文件:

{
  "username": "erkin",
  "email": "example@email.com",
  "password": "b",
  "playlists": [
    {
      "_id": 58,
      "name": "asdsa",
      "date": "09-01-15",
      "musics": [
        {
          "name": "INNA - Cola Song (feat. J Balvin)",
          "duration": "3.00"
        }
      ]
    }
  ]
}

所需結果:

{
  "username": "erkin",
  "email": "example@email.com",
  "password": "b",
  "playlists": [
    {
      "_id": 58,
      "name": "asdsa",
      "date": "09-01-15",
      "musics": [
        {
          "name": "INNA - Cola Song (feat. J Balvin)",
          "duration": "3.00"
        },
        {
          "name": "new",
          "duration": "3.00"
        }
      ]
    }
  ]
}

解決方案:

要將新項目新增至音樂子數組,您可以使用以下更新查詢:

db.collection.update(
    { "_id": ID, "playlists._id": "58"},
    { "$push": 
        {"playlists.$.musics": 
            {
                "name": "test name",
                "duration": "4.00"
            }
        }
    }
)

在此query:

  • "_id": ID 標識您要更新的文件。
  • "playlists._id": "58" 指定文件中您要更新的特定播放清單新增項目。
  • 「$push」執行更新操作。
  • {"playlists.$.musics": ...} 將新專案推送到音樂子陣列中。

以上是如何使用 $push 將新項目新增到 MongoDB 中的巢狀數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn