У меня есть простые документы, такие как
{
...,
things: ["a", "b", "c"]
},
{
...,
things: ["b", "d", "e"]
},
...
, и я хочу общее количество различных вещей, в данном случае: ["a","b","c","d","e"]
, результат должен быть 5.
Как чтобы сделать это с помощью агрегированного запроса?
Моя текущая попытка
[
{
"$group": {
"_id": "things",
"things": { "$push": "$things" }
}
},
{
"$addFields": {
"allThings": {
"$reduce": {
"input": "$things",
"initialValue": [],
"in": {
"$concatArrays": ["$$value", "$$this"]
}
}
}
}
}
]
, которая возвращает все поля в одном массиве, но я не знаю, как подсчитать в нем различные значения.
Рад за любую помощь!