Les concepts de "joindre" n'existent pas vraiment dans Mongodb car nous parlons de base de données non structurée par nature, puis à un moment donné $lookup
a été ajouté et nous a donné une capacité de "jointure à gauche", mais j'ai toujours l'impression que c'est "mal" d'utiliser ces concepts structurés lorsqu'il s'agit de Mongo.
Cela dit, le pipeline suivant devrait suffire à vos besoins :
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"
}
}
])