Hi, I am new to MongoDB aggregation. I am trying to solve one issue relating multiple collections where I have to generate a collaborative view of user orders.
Please see Mongo playground which contains the dataset I am using for the problem.
Input Dataset
db={
orders: [
{
_id: ObjectId("65fee31937b6938d0107afe9"),
products: [
{
_id: ObjectId("65fee0f137b6938d0107afe3"),
qty: 20
},
{
_id: ObjectId("65fee0f137b6938d0107afe4"),
qty: 2
}
],
uid: ObjectId("65fee0b337b6938d0107afe1")
},
{
_id: ObjectId("65fee31937b6938d0107afea"),
products: [
{
_id: ObjectId("65fee0f137b6938d0107afe2"),
qty: 4
},
{
_id: ObjectId("65fee0f137b6938d0107afe4"),
qty: 1
}
],
uid: ObjectId("65fee0b337b6938d0107afe0")
}
],
users: [
{
_id: ObjectId("65fee0b337b6938d0107afe0"),
name: "User 1",
address: "Address 1"
},
{
_id: ObjectId("65fee0b337b6938d0107afe1"),
name: "User 2",
address: "Address 2"
}
],
products: [
{
_id: ObjectId("65fee0f137b6938d0107afe2"),
name: "Product 1"
},
{
_id: ObjectId("65fee0f137b6938d0107afe3"),
name: "Product 2"
},
{
_id: ObjectId("65fee0f137b6938d0107afe4"),
name: "Product 3"
}
]
}
I am looking for an output as below:
[
{
"_id": ObjectId("65fee0b337b6938d0107afe0"),
"address": "Address 1",
"name": "User 1",
"orders": [
{
"_id": ObjectId("65fee31937b6938d0107afea"),
"products": [
{
"_id": ObjectId("65fee0f137b6938d0107afe2"),
"name": "Product 1",
"qty": 4
},
{
"_id": ObjectId("65fee0f137b6938d0107afe4"),
"name": "Product 3",
"qty": 1
}
],
"uid": ObjectId("65fee0b337b6938d0107afe0")
}
]
},
{
"_id": ObjectId("65fee0b337b6938d0107afe1"),
"address": "Address 2",
"name": "User 2",
"orders": [
{
"_id": ObjectId("65fee31937b6938d0107afe9"),
"products": [
{
"_id": ObjectId("65fee0f137b6938d0107afe3"),
"name": "Product 2",
"qty": 20
},
{
"_id": ObjectId("65fee0f137b6938d0107afe4"),
"name": "Product 3",
"qty": 2
}
],
"uid": ObjectId("65fee0b337b6938d0107afe1")
}
]
}
]