Я пытаюсь использовать совокупную структуру 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
(что, очевидно, работает только для массивов).
brand
,price
иfamily
, в противном случае разумно использовать уменьшение карты - person Yogesh   schedule 24.04.2015