I concetti di "unione" non esistono realmente in Mongodb poiché stiamo parlando di database non strutturati per natura, quindi ad un certo punto $lookup
è stato aggiunto e ci ha dato la possibilità di "unire a sinistra", tuttavia ritengo che sia "sbagliato" utilizzare questi concetti strutturati quando si ha a che fare con Mongo.
Detto questo, questa pipeline seguente dovrebbe essere sufficiente per le tue esigenze:
db.Orders.aggregate([
{
$group: {
_id: "$product_id",
sum: {$sum : 1}
}
},
{
$lookup: {
from: "product",
local_field: "_id",
foreign_field: "_id",
as: "product"
}
},
{
$unwind: "$product"
},
{
$project: {
Product_id: "$_id",
OrderCount: "$sum",
ProductName: "$product.Name"
}
}
])