2012-04-30 2 views
2

Как написать simial запрос с использованием агрегации mongdoDbMongoDb агрегация

select count(*) as ccount from a group by a.someField order by ccount desc limit 1 

Использование групповой функции в mondoDb, я хочу, чтобы сгруппировать свою коллекцию с помощью определенного ключа и возврата 1 строку, которая происходит чаще

Код ниже в Java, возвращаемый список, который применял группу по полю someField и возвращал коллекцию элементов, где каждый элемент имеет 2 поля, «someField» и «count» (число случаев). Я бы хотел избежать второй итерации на стороне клиента не включенные в другие группировки

new GroupCommand(myCollection, 
       new BasicDBObject("someField ", true), 
       null, 
       new BasicDBObject("count", 0), 
       "function(key,val){ val.count++;}", 
       null); 

ответ

1

Для команды группы MongoDB не существует ничего, кроме порядка или ограничения SQL. Рамки агрегации в текущей версии развития (версия 2.1) предоставляет $ сортировки и $ предельных операторов:

http://www.mongodb.org/display/DOCS/Aggregation+Framework

+1

Update: стабильный релиз Mongo 2.2 теперь является официальным, а структура агрегации теперь доступна по качеству производства. –