`

mongodb 的分页实现

 
阅读更多

mongodb默认是提供了类似分页的函数skip,但这个使用起来,数据量一旦大起来,查询效率是非常低的,甚至能达到几百秒,很恐怖。

 

这里应该用其它给的办法代替,比如说先得到前100条数据,然后用第100条数据里的某一属性做为查询条件,得到剩下的数据,然后再limit(100)。代码如下:

 

var page1 = db.foo.find().sort({"date" : -1}).limit(100);
var latest = null;
while (page1.hasNext()) {
  latest = page1.next();
  display(latest);
}
// 用第100数据里的date做为查询条件,得到剩下的数据
var page2 = db.foo.find({"date" : {"$gt" : latest.date}});
page2.sort({"date" : -1}).limit(100);

 

 

#sort,排序,1为升序,-1为降序
#skip,偏移量
#limit,限制返回数量

 

但这样实现还是有点问题的,譬如我默认不是从第一页开始的,我直接进入第三页,前面的条件根本就没出现过,那咋办,在网上找了很多基本上没有什么答案,所以针对这种问题,就尽量不要设计这种

1 2 3 4 5 6 7 8 9 数字的点击分页了,直接上一页、下一页得了,如果从浏览器直接输入跳转到后面的页面,那就只有程序判断一下从第一页开始喽!

 

分享到:
评论

相关推荐

    MongoDB分页插件

    MongoDB分页插件是专为MongoDB数据库设计的一个实用工具,主要目的是为了方便开发者在进行数据查询时实现高效、灵活的分页功能。在Java开发中,数据库操作是不可或缺的一部分,而面对大量数据时,分页显示尤为重要,...

    Springmvc应用Mongodb分页实现

    2. **MongoDB分页工具**: 在MongoDB中,我们使用`Query`对象来存储查询条件。实现分页功能的关键方法是`skip()`和`limit()`。`skip()`用于跳过前N条数据(N为当前页码减1乘以每页显示的条数),`limit()`则限制...

    高效mongodb的php分页类(不使用skip).zip

    介绍了高效mongodb的php分页类,并且没有使用mongodb的skip来实现分页,需要的朋友可以参考下,mongodb分页skip limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低。 如果能够通过查询条件查出...

    java+mongodb+分页

    总结起来,Java与MongoDB的分页查询涉及到数据库连接、集合操作以及分页逻辑的实现。`CRMQueryHelper.java`可能是一个关键的工具类,负责处理这些细节。通过源码分析和调试,我们可以更好地理解其工作流程,并据此...

    基于c#的Mongodb帮助类源码 含一个分页效率测试

    在压缩包中的`MongoDBTest`项目,你将找到实际的代码实现,包括这些操作的帮助类和分页效率测试。你可以运行这些测试,观察在不同数据规模下的性能差异,并根据测试结果调整你的代码以优化性能。 总的来说,这个C# ...

    spring-data集成mongodb大数据量分页+自增id实现+MongodbPlugin集成

    skip随着数据量上去,分页性能极具下降,不推荐。这里使用spring-data-mongo实现的分页,并且实现了mongodb自增id(监听器方式)、也集成了轻量级插件MongodbPlugin,有需要的可以下载看看哦~

    Node.js-基于nodejsexpressmongodbmulter实现的文件上传存储分页管理功能

    在本文中,我们将深入探讨如何使用Node.js、Express、MongoDB和Multer库来构建一个功能完善的文件上传、存储和分页管理系统。首先,我们来看看每个技术的核心概念: 1. **Node.js**:Node.js是一个开放源代码、跨...

    mongoDB实现分页的方法

    mongoDB的分页查询是通过limit(),skip(),sort()这三个函数组合进行分页查询的。 下面这个是我的测试数据 db.test.find().sort({“age”:1}); 第一种方法 查询第一页的数据:db.test.find().sort({“age”:1}).limit...

    mongoDB分页的两种方法(图例)

    在MongoDB中,分页通常通过结合`limit()`、`skip()`和`sort()`这三个函数来实现。接下来,我们将深入探讨这两种分页方法。 首先,让我们了解这三种函数的基本用法: 1. `limit(n)`: 这个函数用于限制查询结果的数量...

    springboot整合mongodb+redis+mybatis+mysql

    SpringBoot 与 MongoDB 的整合主要通过 `spring-boot-starter-data-mongodb` 依赖实现,这使得我们能够轻松地进行 CRUD(创建、读取、更新、删除)操作。 Redis 是一个开源的、高性能的键值对数据存储系统,通常...

    Java操作MongoDB模糊查询和分页查询

    在Java中操作MongoDB数据库时,我们经常需要执行模糊查询和分页查询来获取符合特定条件的数据,并且按需分页展示结果。本篇将详细讲解如何使用Java进行MongoDB的模糊查询和分页查询。 首先,让我们了解模糊查询。在...

    java分页实现大全

    Java 分页实现是Java开发中常见的一种技术,用于在大量数据中进行高效的查询和展示,以提高用户体验并减轻服务器负载。在处理大数据集时,分页尤为重要,因为它允许用户逐步加载和浏览信息,而不是一次性加载所有...

    springboot+mongodb 实现按日期分组分页查询功能

    Spring Boot + MongoDB 实现日期分组分页查询功能 Spring Boot 是一个基于 Java 的开源框架,旨在简化 Spring 应用程序的开发过程,而 MongoDB 是一个基于分布式文件存储的 NoSQL 数据库,常用于大数据存储和处理...

    高效mongodb的php分页类(不使用skip)

    下面是一个实现这种高效分页的PHP类的简要示例: 1. `mongodb.class.php`: 这个类将用于处理MongoDB的连接和基本操作。它包含了数据库连接、选择数据库、执行查询等方法。 ```php class DB { // ... // 连接...

    mongodbrepositoryPHP7MongoDBRepository实现

    MongoDBRepository则是这个模式的具体实现,用于处理MongoDB数据库中的数据操作。 MongoDB是一款基于分布式文件存储的文档型数据库,非常适合处理大量非结构化或半结构化数据。在PHP7中,我们可以使用`mongodb/...

    mongodb的java驱动实现简单示例

    在本示例中,我们将深入探讨如何使用Java驱动实现与MongoDB的交互。 首先,确保已经在项目中引入了MongoDB的Java驱动依赖。通常,这可以通过Maven或Gradle完成。在Maven的`pom.xml`文件中,添加以下依赖: ```xml ...

    MongoDB中的分页–如何真正避免性能下降?

    然而,不正确的分页实现可能会导致性能下降。本文将深入探讨在MongoDB中进行高效分页的方法,以避免性能问题。 在传统的SQL环境中,我们通常使用`OFFSET`和`LIMIT`来实现分页,但在MongoDB中,这种方法可能并不理想...

    mongodb的小例子,增删改查,分页

    MongoDB提供`skip()`和`limit()`方法实现分页。假设我们希望每页显示10条记录,第二页的数据获取如下: ```javascript var pageSize = 10; var currentPage = 2; var skipRecords = (currentPage - 1) * pageSize; ...

Global site tag (gtag.js) - Google Analytics