Tôi có một bộ sưu tập mà trông giống như sau:Sử dụng khuôn khổ MongoDB gộp vào nhóm theo độ dài của mảng
{
"_id": "id0",
"name": "...",
"saved_things": [
{ ... },
{ ... },
{ ... },
]
}
{
"_id": "id1",
"name": "...",
"saved_things": [
{ ... },
]
}
{
"_id": "id2",
"name": "...",
"saved_things": [
{ ... },
]
}
vv ...
Tôi muốn sử dụng khuôn khổ hợp MongoDB của để đưa ra với kết quả biểu đồ cho biết số lượng người dùng có số lượng nhất định là saved_things
. Ví dụ: đối với tập dữ liệu ở trên, nó có thể trả về một cái gì đó như:
{ "_id": 1, "count": 2 },
{ "_id": 3, "count": 1 }
Tôi đã thử các kết hợp khác nhau của hàm tổng hợp như dưới đây, nhưng không có cách nào hiệu quả. (Tôi có cảm giác rằng tôi đang nói về điều này một cách khủng khiếp sai.)
collection.aggregate([
{ $unwind: "$saved_things" },
{ $group: "$_id", count: { $sum: 1 } } },
{ $group: "$count", number: { $sum: 1 } } },
{ $sort: { number: -1 } }
], function(err, result) {
console.log(result);
});
Điều này có thể xảy ra với khung làm việc của Mongo hay không?
Ý của bạn là gì với _how nhiều người dùng có một số lượng nhất định của saved_things subcollectin_? Với 'saved_thing', bạn muốn biết người dùng nào có' saved_things' và bao nhiêu? Có phải đó không? –
Hmm từ ngữ của tôi có vẻ khó hiểu, xin lỗi về điều đó! Tôi nghĩ rằng ví dụ đầu ra mô tả tốt nhất những gì tôi đang tìm kiếm, nhưng tôi sẽ cố gắng mô tả nó một lần nữa. Tôi muốn nhận số lượng đối tượng trong 'saved_things' cho mỗi người dùng trong bộ sưu tập và tổng hợp tần suất của số đó. Nó tạo ra một biểu đồ về số lượng 'save_things' của người dùng (nếu điều đó có ý nghĩa). Hãy cho tôi biết nếu điều đó vẫn còn khó hiểu theo bất kỳ cách nào. –