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

Cập nhật một mảng với $ push trong MongoDB


Để cập nhật một mảng với $ push, hãy sử dụng updateOne () trong MongoDB. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo526.insertOne(
... {
...
...    "CountryName": "US",
...    "TeacherName": "Bob",
...    "StudentInformation": [
...       {
...          "Name": "Chris",
...          "Subject": "MySQL",
...          "ListOfMailId":[]
...       },
...       {
...          "Name": "David",
...          "Subject": "MongoDB",
...          "ListOfMailId":[]
...
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8af031437efc8605595b6b")
}

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

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

{ "_id" : ObjectId("5e8af031437efc8605595b6b"), "CountryName" : "US", "TeacherName" :
"Bob", "StudentInformation" : [ { "Name" : "Chris", "Subject" : "MySQL", "ListOfMailId" : [ ] }, {
"Name" : "David", "Subject" : "MongoDB", "ListOfMailId" : [ ] } ] }

Sau đây là truy vấn cập nhật một mảng với $ push -

> db.demo526.updateOne(
... {
...    _id:ObjectId("5e8af031437efc8605595b6b"),
...    "StudentInformation": { "$elemMatch": { "Name": "David", "Subject": "MongoDB" }}
... },
... {
...    "$push": { "StudentInformation.$.ListOfMailId": { "MailId": "David@gmail.com" }}
...
... }
... )
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

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

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

{ "_id" : ObjectId("5e8af031437efc8605595b6b"), "CountryName" : "US", "TeacherName" : "Bob", "StudentInformation" : [
   { "Name" : "Chris", "Subject" : "MySQL", "ListOfMailId" : [ ] },
   { "Name" : "David", "Subject" : "MongoDB", "ListOfMailId" : [ { "MailId" : "David@gmail.com" } ] }
] }