Bạn không thể tham chiếu $Comments.Rating
bởi vì các nhận xét nằm trong một bộ sưu tập riêng biệt và tài liệu sản phẩm chỉ chứa tham chiếu đến chúng.
Vì vậy, thay vào đó, bạn cần phải mô phỏng một tham gia bằng cách sử dụng một vài bước:
// 1. Get the product's Comments array of comment ids.
Product.findOne(id, 'Comments', function(err, product) {
// 2. Filter Comments to just those in product.Comments and average the Rating
Comments.aggregate([
{$match: {_id: {$in: product.Comments}}},
{$group: {_id: product._id, average: {$avg: '$Rating'}}}
], function (err, result) {...});
});