$push के साथ एकाधिक सरणी फ़ील्ड अपडेट करना
एक ही update() ऑपरेशन में $push ऑब्जेक्ट में एकाधिक फ़ील्ड निर्दिष्ट करके दो अलग-अलग सरणियों में मान जोड़ सकते हैं।
उदाहरण: दो सरणी फ़ील्ड के साथ दस्तावेज़
> db.twoSeparateArraysDemo.insertOne({"StudentName":"Larry","StudentFirstGameScore":[98],"StudentSecondGameScore":[77]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9b152815e86fd1496b38b8") }
> db.twoSeparateArraysDemo.insertOne({"StudentName":"Mike","StudentFirstGameScore":[58],"StudentSecondGameScore":[78]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9b152d15e86fd1496b38b9") }
> db.twoSeparateArraysDemo.insertOne({"StudentName":"David","StudentFirstGameScore":[65],"StudentSecondGameScore":[67]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9b153315e86fd1496b38ba") }
एक ही कॉल में दोनों सरणियों में मान जोड़ना (Mike के लिए)
> db.twoSeparateArraysDemo.update(
{_id: ObjectId("5c9b152d15e86fd1496b38b9")},
{ $push: {
StudentFirstGameScore: 45,
StudentSecondGameScore: 99
}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
सत्यापन
> db.twoSeparateArraysDemo.find().pretty();
आउटपुट: Mike के दस्तावेज़ में दोनों सरणियाँ अपडेटेड: StudentFirstGameScore: [58, 45], StudentSecondGameScore: [78, 99]। अन्य दस्तावेज़ अपरिवर्तित।
विस्तार:
$pushके साथ$eachका उपयोग करके एकाधिक मान जोड़ें:{ $push: { scores: { $each: [90, 95, 100] } } }।$addToSetका उपयोग करके डुप्लिकेट रोकें।$sliceऔर$sortमॉडिफायर के साथ सरणी आकार सीमित करें और क्रमबद्ध रखें।