MongoDB एग्रीगेशन में $map: सरणी तत्व रूपांतरण और $out द्वारा सहेजना
$map सरणी के प्रत्येक तत्व को नए आकार में बदलता है। $out स्टेज परिणाम को उसी संग्रह में ओवरराइट करता है (सावधानी से उपयोग करें)।
नमूना डेटा
> db.demo343.insertOne({_id: 101, UserName: "Chris", details: [{"Name": "John"}, {"Name": "David"}]});
{ "acknowledged": true, "insertedId": 101 }
एग्रीगेशन: प्रत्येक तत्व को {Name: originalObject} में लपेटना
> db.demo343.aggregate([
{$addFields: {
details: {$map: {input: "$details", in: {Name: "$$this"}}}
}},
{$out: "demo343"}
]);
परिणाम (find के बाद)
{ "_id": 101, "UserName": "Chris", "details": [{"Name": {"Name": "John"}}, {"Name": {"Name": "David"}}] }
प्रत्येक मूल ऑब्जेक्ट {Name: ...} अब {Name: {Name: ...}} में लपेटा गया है। चेतावनी: $out संग्रह को पूरी तरह से बदल देता है। उत्पादन में $merge (MongoDB 4.2+) का उपयोग करना सुरक्षित है।