繁体   English   中英

java mongodb sort()和limit()函数

[英]java mongodb sort() and limit() function

我想对每个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());
    }

但是实际上,对于集合中的所有文档,仍对排序进行处理,即,即使我使用函数limit(100),它也是全局排序。由于集合的规模非常大,排序函数将占用相当大的空间。因此,我想知道mongodb java驱动程序是否具有将执行本地(仅对返回的100个文档进行排序)而不是全局排序的功能?

通过使用Mongodb 3.x和相应的Java驱动程序,您可以通过执行以下操作进行排序:

List<Document> list = collection.find().sort(descending("number")).into(new ArrayList<Document>());

用法排序为:sort(order(“ field”));

顺序=升序或降序

无法在Java驱动程序中进行本地排序。 如果要进行本地排序,请将文档读入数组并对该数组进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM