「結合」の概念は、本質的に非構造化データベースについて話しているため、Mongodbには実際には存在しません。その後、ある時点で$lookup
が追加され、「左結合」機能が提供されましたが、Mongoを扱うときにこれらの構造化された概念を使用するのは「間違っている」と感じています。
そうは言っても、この次のパイプラインはあなたのニーズで十分なはずです:
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"
}
}
])