如何在 MongoDB 中向物件中的陣列插入一項?


若要將一項插入物件中已建立的陣列中,請使用 MongoDB $push。讓我們建立一個包含下列文件的集合 -

> db.demo449.insertOne(
... {
...    details1: {
...       details2: [{
...          _id:new ObjectId(),
...             Name:"Chris"
...       }],
...       details3: [{
...          _id:new ObjectId(),
...          Name:"David"
...       }]
...    }
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7a40e971f552a0ebb0a6e3")
}

在 find() 方法的幫助下從集合中找出所有文件 -

> db.demo449.find();

這會產生以下輸出 -

{ "_id" : ObjectId("5e7a40e971f552a0ebb0a6e3"), "details1" : { "details2" : [ { "_id" :
ObjectId("5e7a40e971f552a0ebb0a6e1"), "Name" : "Chris" } ], "details3" : [ { "_id" :
ObjectId("5e7a40e971f552a0ebb0a6e2"), "Name" : "David" } ] } }

以下是將一項插入物件中陣列中的查詢 -

> db.demo449.update({_id:ObjectId("5e7a40e971f552a0ebb0a6e3")}, {$push: {
'details1.details2':{_id:ObjectId(),"Name":"Carol"}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }

在 find() 方法的幫助下從集合中找出所有文件 -

> db.demo449.find();

這會產生以下輸出 -

{ "_id" : ObjectId("5e7a40e971f552a0ebb0a6e3"), "details1" : { "details2" : [ { "_id" :
ObjectId("5e7a40e971f552a0ebb0a6e1"), "Name" : "Chris" }, { "_id" :
ObjectId("5e7a41a671f552a0ebb0a6e5"), "Name" : "Carol" } ], "details3" : [ { "_id" :
ObjectId("5e7a40e971f552a0ebb0a6e2"), "Name" : "David" } ] } }

更新於: 2020 年 5 月 11 日

794 次瀏覽

開啟您的 職業生涯

完成課程獲取認證

開始學習
廣告
© . All rights reserved.