我希望借助基于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)));
处理任何想法的最佳选择是什么?
答案 0 :(得分:12)
如果你看一下Java Driver API,方法find需要两个参数,即查询和将返回的字段。
想要对结果进行排序后,请使用传统的find方法并对DBCursor进行排序。
DBCursor cursor = DBCollection.find(query);
cursor.sort(new BasicDBObject("lastUpdated ", -1));
请记住,DBCursor对象对数据库执行惰性提取,因此您可以使用排序,限制或跳过而无需开销。