2012-12-18 14 views
6

Chcę zwrócić wyniki z zapytania wyszukiwania przy pomocy sortowania na podstawie pola lastUpdated.MongoDB: Sortowanie danych podczas korzystania z kolekcji DBcollection

Obecnie Widziałem dwa sposoby

Pierwsze podejście

BasicDBObject query = new BasicDBObject(); 
query.put("updated_at","-1"); 
query.put(MONGO_ATTR_SYMBOL, "" + symbol); 
DBCursor cursor = DBcollection.find(query).sort(query); 

Drugie podejście

DBCursor cursor = DBcollection.find(query,new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1))); 

Co jest najlepszym rozwiązaniem do pracy z wszelkich pomysłów ??

Odpowiedz

8

Jeśli przyjrzeć się Java Driver API, metoda find oczekuje dwóch parametrów, zapytania i pól, które zostaną zwrócone.

Gdy chcesz posortować wyniki, użyj tradycyjnej metody wyszukiwania i posortuj DBCursor.

DBCursor cursor = DBCollection.find(query); 
cursor.sort(new BasicDBObject("lastUpdated ", -1)); 

Pamiętaj, obiekt DBCursor zrobić leniwy sprowadzić do bazy danych, dzięki czemu można korzystać z sortowania, ograniczenie lub pominąć bez kosztów ogólnych.

Powiązane problemy