如何在 MongoDB 中向巢狀陣列中新增新項?


為此,請結合使用 find() 和 update()。讓我們建立一個包含文件的集合−

> db.demo124.insertOne(
...    {
...       "Name" : "John",
...       "Id" : 101,
...       "ProjectDetails" : [{
...          "ProjectName1" : "Online Book",
...          "ProjectName2" : "Online Banking"
...    }, {
...          "ProjectName1" : "Online Library Management System",
...          "ProjectName2" : "School Management System"
...       }]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2f2c8b140daf4c2a3544bb")
}

使用 find() 方法顯示集合中的所有文件−

> db.demo124.find();

這將產生以下輸出−

{
   "_id" : ObjectId("5e2f2c8b140daf4c2a3544bb"), "Name" : "John", "Id" : 101, "ProjectDetails" : [
      { "ProjectName1" : "Online Book", "ProjectName2" : "Online Banking" },
      { "ProjectName1" : "Online Library Management System", "ProjectName2" : "School Management System" }
   ] 
}

以下是向巢狀陣列新增新項的查詢−

> db.demo124.find().toArray().forEach(
...    function(d){
...       for(var i = 0; i< d.ProjectDetails.length; ++i) {
...          d.ProjectDetails[i]['ProjectName3'] = 'Online Snake Game';
...       }
...       db.demo124.update({_id: d._id}, d);
...    }
... );

使用 find() 方法顯示集合中的所有文件−

> db.demo124.find().pretty();

這將產生以下輸出−

{
   "_id" : ObjectId("5e2f2c8b140daf4c2a3544bb"),
   "Name" : "John",
   "Id" : 101,
   "ProjectDetails" : [
      {
         "ProjectName1" : "Online Book",
         "ProjectName2" : "Online Banking",
         "ProjectName3" : "Online Snake Game"
      },
      {
         "ProjectName1" : "Online Library Management System",
         "ProjectName2" : "School Management System",
         "ProjectName3" : "Online Snake Game"
      }
   ]
}

更新時間:2020 年 3 月 31 日

539 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始操作
廣告