2012-12-18 60 views
6

我想借助基於lastUpdated字段進行排序來從find查詢中返回結果。MongoDB:在使用DBcollection查找時對數據進行排序

目前,我已經看到有兩種方法

第一種方法

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

第二種方法

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

什麼是與任何思想工作的最佳選擇?

回答

8

如果您查看Java驅動程序API,則方法find需要兩個參數,即查詢和將返回的字段。

一旦你想排序結果,使用傳統的查找方法和排序DBCursor。請記住,DBCursor對象對數據庫執行延遲獲取,因此您可以使用排序,限制或跳過而不帶任何開銷。