Không chắc chắn những gì bạn muốn làm với kết quả cuối cùng vì các khóa và giá trị giống nhau. Tuy nhiên, bạn có thể sử dụng khung tổng hợp nơi bạn có thể chuẩn hóa mảng giá trị nhúng bằng cách sử dụng $unwind
toán tử làm phẳng nó, tức là nó tạo ra một bản sao của mỗi tài liệu trên mỗi mục nhập mảng.
Sau khi làm phẳng mảng giá trị, bạn có thể áp dụng $group
toán tử tích lũy trên các giá trị để tổng hợp chúng. Đường dẫn cuối cùng của $project
toán tử sẽ định hình các trường từ nhóm trước đó thành định dạng mong muốn.
Làm theo ví dụ sau để có khái niệm:
templateAttributes.aggregate([
{ "$match": { "platform": "V1" } },
{ "$unwind": "$available.Community.attributes.type.values" },
{
"$group": {
"_id": "$available.Community.attributes.type.values",
"value": { "$first": "$available.Community.attributes.type.values" }
}
},
{
"$project": {
"_id": 0,
"label": "$_id",
"value": 1
}
}
])
Vì bạn đang sử dụng Sao băng, hãy thêm sao băng meteorhacks:aggregate
sẽ thêm hỗ trợ tổng hợp thích hợp cho Meteor để bạn có thể chạy đường dẫn tổng hợp ở trên trên bộ sưu tập của mình.