清除巢狀 MongoDB 陣列中的項?
若要清除巢狀陣列中的項,請使用 $set 運算子。讓我們首先建立一個集合。以下查詢用於帶有文件建立集合
> db.clearingItemsInNestedArrayDemo.insertOne( { ... ... "StudentName" : "John", ... "StudentDetails" : [ ... { ... "ProjectName" : "Online Banking", ... "ProjectDetails" : [ ... { ... "TechnologyUsed" : "Java", ... "TeamSize":5 ... }, ... ... ] ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c9930b4330fd0aa0d2fe4ce") }
以下查詢用於在 find() 方法的幫助下從集合顯示所有文件
> db.clearingItemsInNestedArrayDemo.find().pretty();
這會產生以下輸出
{ "_id" : ObjectId("5c9930b4330fd0aa0d2fe4ce"), "StudentName" : "John", "StudentDetails" : [ { "ProjectName" : "Online Banking", "ProjectDetails" : [ { "TechnologyUsed" : "Java", "TeamSize" : 5 } ] } ] }
以下查詢用於清除巢狀陣列中的項
> db.clearingItemsInNestedArrayDemo.update({"StudentName": "John"}, {"$set": {"StudentDetails": []}}); Updated 1 existing record(s) in 4ms WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
現在,再次檢查集合中的文件以驗證是否已經從巢狀陣列中清除了項。以下為查詢
> db.clearingItemsInNestedArrayDemo.find().pretty();
這會產生以下輸出
{ "_id" : ObjectId("5c9930b4330fd0aa0d2fe4ce"), "StudentName" : "John", "StudentDetails" : [ ] }
廣告