8

我想在基于 lastUpdated 字段的排序的帮助下返回查找查询的结果。

目前我已经看到了两种方法

第一种方法

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

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

4

1 回答 1

12

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

一旦要对结果进行排序,请使用传统的查找方法并对 DBCursor 进行排序。

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

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

于 2012-12-18T16:44:31.540 回答