我想为每个JSP页面(每页100个项目)排序返回的结果,而不是全局排序。
DBObject sort = new BasicDBObject();
DBObject exist = new BasicDBObject();
DBObject query= new BasicDBObject();
exist.put("$exists",1);
query.put("sortKey":exist);//sortKey is not indexed
sort.put("sortKey",1);
DBCursor cursor = dbcollection.find(query).limit(100).sort(sort);
while(cursor.hasNext()){
System.out.println(cursor.next());
}
但事实上,对于集合中的所有文档,排序是平滑的处理,即,即使我使用函数限制(100),它也是全局排序。由于集合是非常大规模的,排序函数将需要相当长的时间。所以,我想知道mongodb java驱动程序是否具有执行本地的功能(只对返回的100个文档进行排序)而不是全局排序?
答案 0 :(得分:3)
通过使用Mongodb 3.x和相应的java驱动程序,您可以通过执行以下操作进行排序:
class MyDatabase
{
bool isAvailable(const std::string& key)
{
// *compare* key in database
if (key == "Ü")
return true;
else
return false;
}
}
用法排序为: 排序(顺序( “场”));
订单=升序或降序
答案 1 :(得分:1)
无法在Java驱动程序中进行本地排序。如果需要本地排序,请将文档读入数组并对数组进行排序。