如何在 MongoDB 的單個更新中使用 $set 和 $push?


為此,只需使用 update() 進行更新。讓我們建立一個帶有檔案的集合 -

> db.dem0143.insertOne({"StudentId":1,"Details":{"Name":"Chris"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e32eb9efdf09dd6d08539b7")
}
> db.dem0143.insertOne({"StudentId":2,"Details":{"Name":"David"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e32eba5fdf09dd6d08539b8")
}

在集合中使用 find() 方法顯示所有檔案 -

> db.dem0143.find();

這將產生以下輸出 -

{ "_id" : ObjectId("5e32eb9efdf09dd6d08539b7"), "StudentId" : 1, "Details" : { "Name" : "Chris" } }
{ "_id" : ObjectId("5e32eba5fdf09dd6d08539b8"), "StudentId" : 2, "Details" : { "Name" : "David" } }

以下是單次更新中實施 $set 和 $push 的查詢 -

> db.dem0143.update({_id: ObjectId("5e32eba5fdf09dd6d08539b8")}, {$push: {StudentAge:21}, $set: {"Details.Name":"John Doe"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

在集合中使用 find() 方法顯示所有檔案 -

> db.dem0143.find();

這將產生以下輸出 -

{ "_id" : ObjectId("5e32eb9efdf09dd6d08539b7"), "StudentId" : 1, "Details" : { "Name" : "Chris" } }
{ "_id" : ObjectId("5e32eba5fdf09dd6d08539b8"), "StudentId" : 2, "Details" : { "Name" : "John Doe" }, "StudentAge" : [ 21 ] }

更新時間: 31-Mar-2020

790 次瀏覽

開啟您的 職業 生涯

完成課程,獲得認證

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