Computer >> Máy Tính >  >> Lập trình >> MongoDB

Xóa các mục trong một mảng MongoDB lồng nhau?

Để xóa các mục trong một mảng lồng nhau, hãy sử dụng toán tử $ set. Đầu tiên chúng ta hãy tạo một bộ sưu tập. Sau đây là truy vấn để tạo một bộ sưu tập với các tài liệu

> db.clearingItemsInNestedArrayDemo.insertOne( {
...
...    "StudentName" : "John",
...    "StudentDetails" : [
...       {
...          "ProjectName" : "Online Banking",
...          "ProjectDetails" : [
...             {
...                "TechnologyUsed" : "Java",
...                "TeamSize":5
...             },
...
...          ]
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9930b4330fd0aa0d2fe4ce")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ()

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

Điều này sẽ tạo ra kết quả sau

{
   "_id" : ObjectId("5c9930b4330fd0aa0d2fe4ce"),
   "StudentName" : "John",
   "StudentDetails" : [
      {
         "ProjectName" : "Online Banking",
         "ProjectDetails" : [
            {
               "TechnologyUsed" : "Java",
               "TeamSize" : 5
            }
         ]
      }
   ]
}

Sau đây là truy vấn để xóa các mục trong một mảng lồng nhau

> db.clearingItemsInNestedArrayDemo.update({"StudentName": "John"}, {"$set": {"StudentDetails": []}});
Updated 1 existing record(s) in 4ms
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Bây giờ hãy kiểm tra các tài liệu từ bộ sưu tập một lần nữa để xác minh rằng các mục đã được xóa khỏi mảng lồng nhau hay chưa. Sau đây là truy vấn

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

Điều này sẽ tạo ra kết quả sau

{
   "_id" : ObjectId("5c9930b4330fd0aa0d2fe4ce"),
   "StudentName" : "John",
   "StudentDetails" : [ ]
}