"Join"-koncepterne eksisterer ikke rigtigt i Mongodb, da vi taler om ustruktureret database af natur, så på et tidspunkt $lookup
blev tilføjet og gav os muligheden for "venstre joinforbindelse", men jeg føler stadig, at det er "forkert" at bruge disse strukturerede begreber, når vi har at gøre med Mongo.
Med det sagt skulle denne følgende pipeline være tilstrækkelig til dine behov:
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"
}
}
])