mongo sort java_java mongodb sort()和limit()函数

我想为每个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个文档进行排序)而不是全局排序?

解决方法:

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

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

用法排序为:

排序(顺序( “场”));

order =升序或降序

标签:java,sorting,mongodb

来源: https://codeday.me/bug/20190624/1280726.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB是一种基于文档的数据库,使用BSON(二进制JSON)格式来存储和查询数据。它是开源的,使用C++编写,但也提供了Java驱动程序,使Java开发人员可以方便地与MongoDB进行交互。 Java驱动程序是MongoDB的官方驱动程序之一,它提供了一组API,使Java开发人员可以轻松地连接和操作MongoDB。在这篇文章中,我们将深入探讨Java驱动程序如何连接MongoDB,以及Java驱动程序的源代码如何实现这些功能。 首先,我们需要在Java应用程序中引入MongoDBJava驱动程序。可以在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version> </dependency> ``` 接下来,我们需要创建一个MongoClient对象来连接MongoDBMongoClient对象是Java驱动程序中用于连接MongoDB的核心类之一。以下是创建MongoClient对象的示例代码: ```java import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; public class MongoDBConnection { public static void main(String[] args) { MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017"); MongoClient mongoClient = new MongoClient(uri); } } ``` 在这个例子中,我们使用MongoClientURI类来指定MongoDB的连接字符串。连接字符串包含MongoDB的主机名和端口号。然后,我们使用MongoClient类创建一个连接MongoDB的客户端对象。现在,我们已经成功地连接到MongoDB,接下来我们可以使用Java驱动程序来操作MongoDB中的数据了。 Java驱动程序提供了一组API,使Java开发人员可以与MongoDB进行交互。以下是一些常用的API: - MongoDatabase:表示MongoDB中的数据库。 - MongoCollection:表示MongoDB中的集合。 - Document:表示MongoDB中的文档。 以下是使用Java驱动程序查询MongoDB中数据的示例代码: ```java import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import org.bson.Document; public class MongoDBQuery { public static void main(String[] args) { MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017"); MongoClient mongoClient = new MongoClient(uri); MongoDatabase database = mongoClient.getDatabase("test"); MongoCollection<Document> collection = database.getCollection("users"); MongoCursor<Document> cursor = collection.find().iterator(); while (cursor.hasNext()) { Document doc = cursor.next(); System.out.println(doc.toJson()); } cursor.close(); mongoClient.close(); } } ``` 在这个例子中,我们使用MongoDatabase和MongoCollection类来获取MongoDB中的数据库和集合。然后,我们使用MongoCollection类中的find()方法来查询集合中的所有文档。最后,我们使用MongoCursor类来遍历查询结果,并使用Document类来表示MongoDB中的文档。 这就是Java驱动程序连接MongoDB的基本原理。Java驱动程序提供了一组简单易用的API,使Java开发人员可以轻松地与MongoDB进行交互。如果您想深入了解Java驱动程序的工作原理,可以查看Java驱动程序的源代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值