У меня есть коллекция манго с одним из столбцов в виде карты. Например:morphia aggregation отдельные ключи карты
"_id" : ObjectId("5621b"),
"creationDate" : ISODate("2015-09-29T14:27:37.451Z"),
"comment" : "this is my votes",
"attributes" : {
"java" : "great",
"perl" : "good",
"ruby" : "so so",
}
}
{
"_id" : ObjectId("5621c"),
"creationDate" : ISODate("2015-09-29T15:03:25.948Z"),
"comment" : "foo",
"attributes" : {
"perl" : "old fashioned",
"java" : "best of all",
"bash" : "very usefull",
"lisp" : "plan to learn",
}
Я работаю с Java и морфием и хочу, чтобы получить какое-то агрегации
datastore.createAggregation(LanguageComments.class)
.group(
, где я могу отчетливый получить все ключи карты атрибутов: Java, Perl, рубин, баш, шепелявила
MongoDB не может перемещаться по клавишам, не прибегая к обработке JavaScript. Вам будет лучше с aa структурой в массиве вроде: '[{" name ":" perl "," value ":" old fashioned "}, {" name ":" java "," value ":" great " }] '. Итак, теперь существует согласованный путь к 'attributes.name', из которого можно получить отдельную информацию. В противном случае вы застряли с mapReduce. Изменение структуры принесет вам большую пользу. –