Bạn có thể sử dụng BulWrite (). Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo105.insertOne( { _id:'101', Name:'Chris', Details:[{ Marks1:60, Marks2:70, Marks3:70 }, { Marks1:70, Marks2:70, Marks3:90 }] } );
{ "acknowledged" : true, "insertedId" : "101" } 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.demo105.find().pretty();
Điều này sẽ tạo ra kết quả sau -
{
"_id" : "101",
"Name" : "Chris",
"Details" : [
{
"Marks1" : 60,
"Marks2" : 70,
"Marks3" : 70
},
{
"Marks1" : 70,
"Marks2" : 70,
"Marks3" : 90
}
]
} Sau đây là truy vấn để chèn mảng mà phần tử không tồn tại, nếu không hãy cập nhật mảng đó với nhiều điều kiện -
> db.demo105.bulkWrite([
... { "updateOne": {
... "filter": {
... "_id": "101",
... "Details": {
... "$elemMatch": { Marks2: 70, Marks3: 70 }
... }
... },
... "update": {
... "$set": { "Details.$.Marks3": 96 }
... }
... }},
... { "updateOne": {
... "filter": {
... "_id": "101",
... "Details": {
... "$not": {
... "$elemMatch": { Marks2: 70, Marks3: 70 }
... }
... }
... },
... "update": {
... "$push": { "Details": { Marks1: 94, Marks2: 97,Marks3:99} }
... }
... }},
... { "updateOne": {
... "filter": { "_id": 101 },
... "update": {
... "$setOnInsert": {
... "Details": [
... { Marks1: 34, Marks2: 67,Marks3:87 }
... ]
... }
... },
... "upsert": true
... }}
... ])
{
"acknowledged" : true,
"deletedCount" : 0,
"insertedCount" : 0,
"matchedCount" : 2,
"upsertedCount" : 1,
"insertedIds" : {
},
"upsertedIds" : {
"2" : 101
}
} 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.demo105.find().pretty();
Điều này sẽ tạo ra kết quả sau -
{
"_id" : "101",
"Name" : "Chris",
"Details" : [
{
"Marks1" : 60,
"Marks2" : 70,
"Marks3" : 96
},
{
"Marks1" : 70,
"Marks2" : 70,
"Marks3" : 90
},
{
"Marks1" : 94,
"Marks2" : 97,
"Marks3" : 99
}
]
}
{
"_id" : 101,
"Details" : [
{
"Marks1" : 34,
"Marks2" : 67,
"Marks3" : 87
}
]
}