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

Kéo nhiều đối tượng từ một mảng trong MongoDB?

Để kéo nhiều đối tượng từ một mảng, bạn có thể sử dụng toán tử $ pull. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.pullMultipleObjectsDemo.insertOne(
...    {
...       "ClientId" : "100",
...       "ClientName" : "John",
...       "ClientPersonalDetails" : [
...          {
...             "ClientCountryName" : "US",
...             "ClientProjectName" : "Online Book Store",
...
...          },
...          {
...             "ClientCountryName" : "AUS",
...             "ClientProjectName" : "Online Fee Management",
...
...          },
...          {
...             "ClientCountryName" : "UK",
...             "ClientProjectName" : "Online Pig Dice Game",
...
...          },
...          {
...             "ClientCountryName" : "ANGOLA",
...             "ClientProjectName" : "Online Hospital Management",
...
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc7d0748f9e6ff3eb0ce43d")
}

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.pullMultipleObjectsDemo.find().pretty();

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

{
   "_id" : ObjectId("5cc7d0748f9e6ff3eb0ce43d"),
   "ClientId" : "100",
   "ClientName" : "John",
   "ClientPersonalDetails" : [
      {
         "ClientCountryName" : "US",
         "ClientProjectName" : "Online Book Store"
      },
      {
         "ClientCountryName" : "AUS",
         "ClientProjectName" : "Online Fee Management"
      },
      {
         "ClientCountryName" : "UK",
         "ClientProjectName" : "Online Pig Dice Game"
      },
      {
         "ClientCountryName" : "ANGOLA",
         "ClientProjectName" : "Online Hospital Management"
      }
   ]
}

Sau đây là truy vấn để kéo nhiều đối tượng từ một mảng -

> db.pullMultipleObjectsDemo.update(
...    {"_id": ObjectId("5cc7d0748f9e6ff3eb0ce43d")},
...    {"$pull":{"ClientPersonalDetails":{"ClientProjectName":{$in:["Online Book Store","Online Pig Dice Game"]}}}}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Hãy để chúng tôi hiển thị tất cả các tài liệu từ bộ sưu tập để kiểm tra các đối tượng đã được xóa khỏi một mảng hay chưa. Truy vấn như sau -

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

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

{
   "_id" : ObjectId("5cc7d0748f9e6ff3eb0ce43d"),
   "ClientId" : "100",
   "ClientName" : "John",
   "ClientPersonalDetails" : [
      {
         "ClientCountryName" : "AUS",
         "ClientProjectName" : "Online Fee Management"
      },
      {
         "ClientCountryName" : "ANGOLA",
         "ClientProjectName" : "Online Hospital Management"
      }
   ]
}

Nhìn vào kết quả đầu ra mẫu ở trên, nhiều đối tượng đã bị xóa khỏi mảng.