首页 >后端开发 >php教程 >如何使用 $push 将新项目添加到 MongoDB 中的嵌套数组?

如何使用 $push 将新项目添加到 MongoDB 中的嵌套数组?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-14 05:14:16255浏览

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