Я использую структуру совокупного MongoDB для запроса документа, результатов заключается в следующем:маршализацию совокупного результата с Джонго
{
"result" : [
{
"_id" : "luke",
"times" : 8
},
{
"_id" : "albert",
"times" : 4
},
{
"_id" : "matt",
"times" : 4
}
],
"ok" : 1
}
Как видно из результата выше, запрос работает в MongoDB оболочке, но у меня есть проблема, когда при получении результатов с Джонго:
Aggregationoutput =
gamesCollection.aggregate(
"{ ... }"
).as(Aggregation.class);
output.results().iterator().hasNext();
Основная проблема, кажется, что Джонго не позволяет мне использовать AggregationOutput
? он хочет, чтобы вместо Aggregation
... но не могу найти ни одного примера, доступного о том, как использовать его
EDIT: Я немного разочарован тем, что я не могу сделать Джонго работать с агрегатом. Я должен был написать запрос с DBObjects
, как указано в драйвере MongoDB Java, но код выглядит действительно некрасиво ..
EDIT2: Просто, чтобы дополнить информацию, это оригинал агрегатный я использовал с Джонго который не могли маршализацию к ResultObject
List<ResultObject> output =
gamesCollection.aggregate(
"{ $match: { 'playersList.playerid': 'bob' }},"
+"{ $unwind: '$playersList' },"
+"{ $match: { 'playersList.playerid': { $ne: 'bob' } } },"
+"{ $group: { _id: '$playersList.playerid', times: { $sum : 1} } },"
+"{ $sort: { times: -1 } }"
).as(ResultObject.class);
class ResultObject{
String _id;
int times;
}
}
Можете ли вы поделиться кодом класса Aggregation и полным набором collection.aggregate (..), который вы запрашиваете с Jongo? Благодарю. –
Я пойду за быстрым и грязным решением, когда у меня будет время, я вернусь и пересмотрю ваши предложения. Большое спасибо за помощь – nuvio
Как пожелаете. Мне кажется, что с вашим полным кодом мы можем решить это через пару минут. –