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

Paw*_*wan 8 java mongodb

我想在查找基于lastUpdated字段的sortaing的帮助下返回查询结果.

目前我见过两种方式

第一种方法

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

第二种方法

DBCursor cursor = DBcollection.find(query,new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1)));
Run Code Online (Sandbox Code Playgroud)

什么是与任何想法一起工作的最佳选择?

小智 12

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

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

DBCursor cursor = DBCollection.find(query);
cursor.sort(new BasicDBObject("lastUpdated ", -1));
Run Code Online (Sandbox Code Playgroud)

请记住,DBCursor对象做一个懒惰取到数据库中,这样你就可以使用排序,限制或无开销跳过.