Khái niệm "tham gia" không thực sự tồn tại trong Mongodb vì bản chất chúng ta đang nói về cơ sở dữ liệu phi cấu trúc, Sau đó, tại một số điểm $lookup
đã được thêm vào và cung cấp cho chúng tôi khả năng "kết hợp trái", tôi vẫn cảm thấy có vẻ "sai" khi sử dụng các khái niệm có cấu trúc này khi giao dịch với Mongo.
Với điều đó đã nói, đường dẫn sau đây sẽ đáp ứng đủ nhu cầu của bạn:
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"
}
}
])