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

Cập nhật đồng thời MongoDB với bộ sưu tập phụ?


Để cập nhật, chỉ cần sử dụng update (). Sử dụng toán tử $ push để thêm một giá trị được chỉ định và ký hiệu dấu chấm để tiếp cận bộ sưu tập phụ và cập nhật bên trong update ().

Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo547.insertOne(
... {
...    Name : "Chris",
...    Test :
...    {
...       "FirstTest" :
...       {
...          Scores: [56,29,76]
...       },
...       "SecondTest" :
...       {
...          Scores: [98,91,78]
...       }
...    }
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8e2d579e5f92834d7f05dd")
}

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

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

{ "_id" : ObjectId("5e8e2d579e5f92834d7f05dd"), "Name" : "Chris", "Test" : { "FirstTest" : {
"Scores" : [ 56, 29, 76 ] }, "SecondTest" : { "Scores" : [ 98, 91, 78 ] } } }

Sau đây là truy vấn cập nhật đồng thời với bộ sưu tập con -

> db.demo547.update({"Name":"Chris"}, { $push:{ "Test.FirstTest.Scores" : 99}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 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.demo547.find();

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

{ "_id" : ObjectId("5e8e2d579e5f92834d7f05dd"), "Name" : "Chris", "Test" : { "FirstTest" : {
"Scores" : [ 56, 29, 76, 99 ] }, "SecondTest" : { "Scores" : [ 98, 91, 78 ] } } }