MongoDB में $map और $arrayToObject का उपयोग करके ऐरे को ऑब्जेक्ट मैप में बदलना
MongoDB एग्रीगेशन में $map और $arrayToObject ऑपरेटरों का उपयोग करके किसी ऐरे को की-वैल्यू मैप में बदला जा सकता है, जहां प्रत्येक दस्तावेज़ का एक फील्ड की बन जाता है।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo398.insertOne({
"details":[
{
"Name":"Chris",
"Age":22
}
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5e8cedfac4d418a017856c") }
दस्तावेज़ देखना
> db.demo398.find();
आउटपुट:
{ "_id" : ObjectId("5e5e8cedfac4d418a017856c"), "details" : [ { "Name" : "Chris", "Age" : 22 } ] }
ऐरे को मैप में बदलने के लिए एग्रीगेशन क्वेरी
> db.demo398.aggregate([
{
"$addFields": {
"details": {
"$arrayToObject": {
"$map": {
"input": "$details",
"as": "out",
"in": {
"k": "$$out.Name",
"v": "$$out"
}
}
}
}
}
}
])
आउटपुट:
{ "_id" : ObjectId("5e5e8cedfac4d418a017856c"), "details" : { "Chris" : { "Name" : "Chris", "Age" : 22 } } }
मुख्य अवधारणाएं:
$map: ऐरे के प्रत्येक तत्व को ट्रांसफॉर्म करता है$$out.Name: प्रत्येक दस्तावेज़ का Name फील्ड की (k) बन जाता है$$out: पूरा दस्तावेज़ वैल्यू (v) बन जाता है$arrayToObject: की-वैल्यू जोड़े के ऐरे को ऑब्जेक्ट में बदलता है