$replaceRoot स्टेज से एम्बेडेड ऑब्जेक्ट को रूट डॉक्यूमेंट बनाएं
MongoDB एग्रीगेशन में $replaceRoot स्टेज का उपयोग करके किसी एम्बेडेड ऑब्जेक्ट को नया रूट डॉक्यूमेंट बना सकते हैं, जिससे आउटपुट में केवल वही ऑब्जेक्ट रहता है।
उदाहरण: संग्रह बनाना
> db.embeddedObjectDemo.insertOne({
_id: new ObjectId(),
"UserDetails": {"UserName": "John", "UserAge": 24, "UserEmailId": "John22@gmail.com"}
});
{ "acknowledged": true, "insertedId": ObjectId("5ced580fef71edecf6a1f693") }
> db.embeddedObjectDemo.insertOne({
_id: new ObjectId(),
"UserDetails": {"UserName": "Carol", "UserAge": 26, "UserEmailId": "Carol123@gmail.com"}
});
{ "acknowledged": true, "insertedId": ObjectId("5ced5828ef71edecf6a1f694") }
सभी डॉक्यूमेंट्स देखना
> db.embeddedObjectDemo.find().pretty();
{
"_id": ObjectId("5ced580fef71edecf6a1f693"),
"UserDetails": {"UserName": "John", "UserAge": 24, "UserEmailId": "John22@gmail.com"}
}
{
"_id": ObjectId("5ced5828ef71edecf6a1f694"),
"UserDetails": {"UserName": "Carol", "UserAge": 26, "UserEmailId": "Carol123@gmail.com"}
}
एम्बेडेड ऑब्जेक्ट को रूट बनाने की क्वेरी
> db.embeddedObjectDemo.aggregate([
{
$replaceRoot: { newRoot: "$UserDetails" }
}
]);
आउटपुट:
{
"UserName": "John", "UserAge": 24, "UserEmailId": "John22@gmail.com"
}
{
"UserName": "Carol", "UserAge": 26, "UserEmailId": "Carol123@gmail.com"
}
अब प्रत्येक परिणाम एक स्वतंत्र डॉक्यूमेंट है जिसमें UserDetails के फ़ील्ड्स हैं। मूल _id और अन्य फ़ील्ड्स हटा दिए गए हैं।
उपयोग: यह तब उपयोगी है जब आपको केवल एम्बेडेड डेटा को आगे प्रोसेस करना हो या किसी अन्य संग्रह में आउटपुट करना हो।