MongoDB:使用DBcollection find时对数据进行排序

时间:2012-12-18 06:58:44

标签: java mongodb

我希望借助基于lastUpdated字段的sortaing返回find查询的结果。

目前我已经看过两种方式

第一种方法

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)));

处理任何想法的最佳选择是什么?

1 个答案:

答案 0 :(得分:12)

如果你看一下Java Driver API,方法find需要两个参数,即查询和将返回的字段。

想要对结果进行排序后,请使用传统的find方法并对DBCursor进行排序。

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

请记住,DBCursor对象对数据库执行惰性提取,因此您可以使用排序,限制或跳过而无需开销。