у меня есть документы, которые имеют category
поля в виде массива строк, какPopulate Количества уникальных элементов в массиве на основе полей во всех документах
{ name: "aaa", categories: ["apple","banana","peach"] },
{ name: "bbb", categories: ["apple","orange" },
{ name: "ccc", categories: ["apple","peach"] }
...
В результате мне нужно иметь и массив объектов, имеющие агрегированные значения каждое уникальное значение из категории и количества появлений этой категории, как это:
[
{ category: "apple", qty: 3 },
{ category: "banana", qty: 1 },
{ category: "peach", qty: 2 },
{ category: "orange", qty: 1 }
]
Я попытался следующие, но он производит пустой массив в результате
SomeCollection.native(function(err, collection) {
collection.aggregate([
{ $group: { _id: "$categories", name: { $addToSet: "$categories._type" } } },
{ $unwind: "$categories" },
{ $group : { _id : "$categories", count: { $sum : 1 } } }
], function(error, result) {
sails.log.info('result:', result);
});
});
Где я ошибаюсь?