Sử dụng stage $replaceRoot để đưa đối tượng nhúng (embedded object) lên cấp gốc (root). Tạo collection:
> 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") }
Hiển thị document (có trường UserDetails nhúng):
> db.embeddedObjectDemo.find().pretty();
Kết quả.
Pipeline aggregate với $replaceRoot:
> db.embeddedObjectDemo.aggregate([
{ $replaceRoot: { newRoot: "$UserDetails" } }
]);
Kết quả (mỗi document giờ là trực tiếp đối tượng UserDetails):
{
"UserName": "John", "UserAge": 24, "UserEmailId": "John22@gmail.com"
}
{
"UserName": "Carol", "UserAge": 26, "UserEmailId": "Carol123@gmail.com"
}