यहां, नेस्टेड ऐरे में नए डॉक्यूमेंट्स जोड़ने के लिए $push का उपयोग किया जा सकता है। उपरोक्त $push अवधारणा को समझने के लिए, आइए नेस्टेड ऐरे डॉक्यूमेंट के साथ एक कलेक्शन बनाएं। डॉक्यूमेंट के साथ कलेक्शन बनाने की क्वेरी इस प्रकार है:
>db.nestedArrayDemo.insertOne({"EmployeeName":"Larry","EmployeeSalary":9000,"EmployeeDetails":
[{"EmployeeDOB":new Date('1990-01-21'),"EmployeeDepartment":"ComputerScience","EmployeeProject":
[{"Technology":"C","Duration":6},{"Technology":"Java","Duration":7}]}]});
निम्नलिखित आउटपुट है:
{ "acknowledged" : true, "insertedId" : ObjectId("5c6d73090c3d5054b766a76e") }
अब आप find() मेथड की मदद से कलेक्शन से डॉक्यूमेंट्स प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:
> db.nestedArrayDemo.find().pretty();
निम्नलिखित आउटपुट है:
{ "_id" : ObjectId("5c6d73090c3d5054b766a76e"), "EmployeeName" : "Larry", "EmployeeSalary" : 9000,
"EmployeeDetails" : [
{ "EmployeeDOB" : ISODate("1990-01-21T00:00:00Z"), "EmployeeDepartment" : "ComputerScience",
"EmployeeProject" : [
{ "Technology" : "C", "Duration" : 6 },
{ "Technology" : "Java", "Duration" : 7 }
]
}
] }
यहां नेस्टेड ऐरे में नए डॉक्यूमेंट्स जोड़ने के लिए $push का डेमो है। क्वेरी इस प्रकार है:
>db.nestedArrayDemo.update({"_id":ObjectId("5c6d73090c3d5054b766a76e"), "EmployeeDetails.EmployeeDepartment":"ComputerScience"}, {"$push": {"EmployeeDetails.$.EmployeeProject": {"Technology":"Python", "Duration":4 }}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
उपरोक्त क्वेरी में, मैंने नेस्टेड ऐरे में डॉक्यूमेंट {"Technology":"Python", "Duration":4} जोड़ा है। अब कलेक्शन से डॉक्यूमेंट्स फिर से प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.nestedArrayDemo.find().pretty();
निम्नलिखित आउटपुट है:
{ "_id" : ObjectId("5c6d73090c3d5054b766a76e"), "EmployeeName" : "Larry", "EmployeeSalary" : 9000,
"EmployeeDetails" : [
{ "EmployeeDOB" : ISODate("1990-01-21T00:00:00Z"), "EmployeeDepartment" : "ComputerScience",
"EmployeeProject" : [
{ "Technology" : "C", "Duration" : 6 },
{ "Technology" : "Java", "Duration" : 7 },
{ "Technology" : "Python", "Duration" : 4 }
]
}
] }