इसके लिए कुछ दृष्टिकोण हैं, लेकिन यह काफी हद तक आपके मोंगोडीबी संस्करण पर निर्भर करता है। 2.6 और ऊपर के नवीनतम संस्करण $ का समर्थन करते हैं नक्शा
ऑपरेटर जिसका आप उपयोग कर सकते हैं $project
कोड>
आप जो चाहते हैं उसे करने के लिए:
db.friend.aggregate([
{ "$project": {
"name": 1,
"buddies": {
"$map": {
"input": "$friends",
"as": "el",
"in": {
"nickName": "$$el.name",
"age": "$$el.age"
}
}
}
}}
])
पिछले संस्करणों में आप $unwindका उपयोग करेंगे कोड>
सरणी तत्वों के साथ काम करने के लिए और $समूह
:
db.collection.aggregate([
{ "$unwind": "$friends" },
{ "$group": {
"_id": "$_id",
"name": { "$first": "$name" },
"buddies": {
"$push": {
"nickName": "$friends.name",
"age": "$friends.age"
}
}
}}
])
पहले फॉर्म के साथ थोड़ा अधिक कुशल होने के कारण आप सरणी सामग्री को डी-सामान्य नहीं कर रहे हैं और प्रक्रिया के लिए पाइपलाइन में अधिक दस्तावेज़ तैयार कर रहे हैं।