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

Cập nhật đối tượng tại Chỉ mục mảng cụ thể trong MongoDB?

Để cập nhật đối tượng tại chỉ mục mảng cụ thể, hãy sử dụng update () trong MongoDB. 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.updateObjectDemo.insertOne(
...   {
...       id : 101,
...       "StudentDetails":
...       [
...          [
...             {
...                "StudentName": "John"
...             },
...             { "StudentName": "Chris" }
...          ],
...          [ { "StudentName": "Carol" },
...          { "StudentName": "David" } ]
...       ]
...   }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccdcd9b685b30d09a7111e0")
}

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

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

{
   "_id" : ObjectId("5ccdcd9b685b30d09a7111e0"),
   "id" : 101,
   "StudentDetails" : [
      [
         {
            "StudentName" : "John"
         },
         {
            "StudentName" : "Chris"
         }
      ],
      [
         {
            "StudentName" : "Carol"
         },
         {
            "StudentName" : "David"
         }
      ]
   ]
}

Sau đây là truy vấn cập nhật đối tượng tại chỉ mục mảng cụ thể trong MongoDB -

> db.updateObjectDemo.update({"id":101},{$set:{"StudentDetails.1.1.StudentName":"Mike"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Hãy để chúng tôi kiểm tra đối tượng tại chỉ mục cụ thể [1,1]. Giá trị “David” đã được cập nhật hay chưa -

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

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

{
   "_id" : ObjectId("5ccdcd9b685b30d09a7111e0"),
   "id" : 101,
   "StudentDetails" : [
      [
         {
            "StudentName" : "John"
         },
         {
            "StudentName" : "Chris"
         }
      ],
      [
         {
            "StudentName" : "Carol"
         },
         {
            "StudentName" : "Mike"
         }
      ]
   ]
}