Я пытаюсь использовать агрегированные структуру MongoDB для генерации документов из коллекции, которая имеет следующую структуру:MongoDB: Итоговые значения всех полей определенного поддокументе
{
"_id" : ObjectId("5510eb56f877bbef153d236d"),
"attributes" : {
"brand" : "Mercedes",
"price" : 289,
"family" : "GARDEN"
},
"name" : "Bigger Fix Soft Crisps"
}
{
"_id" : ObjectId("5510eb56f877bbef153d236e"),
"attributes" : {
"brand" : "Adelholzener",
"price" : 683,
"family" : "COMPUTER"
},
"name" : "Soft Stockhome Chips"
}
{
"_id" : ObjectId("5510eb56f877bbef153d236f"),
"attributes" : {
"brand" : "Pepsi",
"price" : 789,
"family" : "CAR"
},
"name" : "Light Yearsailfresh Meat"
}
Я хочу, чтобы получить агрегацию все поля из подкаталога attributes
с их возможными значениями. Поскольку поля в поддоку не известны, я не могу просто использовать поля, приведенные в этом примере, и поэтому должен быть динамическим. Результат должен выглядеть примерно так:
{
"_id" : "brand",
"values" : [
"Mercedes", "Adelholzener", "Pepsi"
]
},
{
"_id" : "price",
"values" : [
289, 683, 789
]
},
{
"_id" : "family",
"values" : [
"GARDEN", "COMPUTER", "CAR"
]
}
Я пока не нашел решение этой проблемы. Я пробовал с $project
и $unwind
(что, очевидно, работает только для массивов).
вы можете сказать о коллекции? –
Возможно, вам следует использовать три отдельных агрегата, чтобы узнать «бренд», «цена» и «семейство», другое разумное использование карты уменьшить – Yogesh