如何向 MongoDB 中的子文件陣列中新增子文件?


使用 $push 運算子來新增子文件。我們首先使用文件建立一個集合 -

> db.subDocumentToSubDocumentDemo.insertOne(
   {
      "_id" :101,
      "StudentName" : "Larry",
      "StudentAge" : 21,
      "StudentDetails" : [
         {
            "StudentCountryName" : "US",
            "StudentFavouriteSubjectList" : [ ]
         }
      ]
   }
);
{ "acknowledged" : true, "insertedId" : 101 }

以下是使用 find() 方法從集合顯示所有文件的查詢 -

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

這將生成以下輸出 -

{
   "_id" : 101,
   "StudentName" : "Larry",
   "StudentAge" : 21,
   "StudentDetails" : [
      {
         "StudentCountryName" : "US",
         "StudentFavouriteSubjectList" : [ ]
      }
   ]
}

以下是向 MongoDB 中的子文件陣列新增子文件的查詢 -

> db.subDocumentToSubDocumentDemo.update(
   { "_id": 101 },
   {
      "$push": {
         "StudentDetails": {
            "StudentCountryName" : "UK",
            "StudentFavouriteSubjectList" : ["MongoDB","Java" ]
         }
      }
   }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

我們再次檢查所有文件 -

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

這將生成以下輸出 -

{
   "_id" : 101,
   "StudentName" : "Larry",
   "StudentAge" : 21,
   "StudentDetails" : [
      {
         "StudentCountryName" : "US",
         "StudentFavouriteSubjectList" : [ ]
      },
      {
         "StudentCountryName" : "UK",
         "StudentFavouriteSubjectList" : [
            "MongoDB",
            "Java"
         ]
      }
   ]
}

更新於: 2019 年 7 月 30 日

2K+ 瀏覽次數

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.