2012-12-18 58 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对象对数据库执行延迟获取,因此您可以使用排序,限制或跳过而不带任何开销。