美文网首页
mongo分页查询方式

mongo分页查询方式

作者: java_飞 | 来源:发表于2018-08-13 16:51 被阅读78次

 闲下来,想了下准备总结下最近在mongo查询上所遇到的一些问题,我在这里罗列一下。

1.mongo使用shell的find查询:

 查询long型字段时,需要在查询条件里使用NumberLong("xxxx")包裹起来,这样才是精确查找,不然查找到的数据是不一致

2.mongo添加一个字段:

为mongo的每一条记录都添加一个字段时,使用uodate时,加入插入的字段默认值是int型的,那么直接填写值的话,插入后会变成double型的数据,后面自动添加“.0,必须用NumberInt(xx)来包裹;因为mongo是基于bason格式的,而bason里面是有int类型,而mongo的shell是基于json格式的,json格式中只有number类型,所以才使用int或者long型必须用number来包裹;

3.mongo分页方式讨论

①一般的分页使用skip,limit来结合,这个方式实现起来很简单,并且前期问题也不打,但是当数据量上去以后就会越来越卡,我测试过10W数据量,当一次查询发起的时候会卡很久,建议小数据量时使用;

②第二种方式是基于瀑布流形式的下拉分页,其通过排序某个唯一字段,然后获取上一条记录大这个字段通过对比获取上一页或者下一页的数据,这个方式是我们现在业务中普遍使用的,对于大数据量的情况下性能也很不错,但是其中有2各地方需要注意,第一点:在翻页是必须先排序,然后在获取,然后如果可以上下翻页的话,排序方式也需要根据相应的转换,不然获取的数据会错乱,具体需要根据自己实际测试来改动;第二点:排序的字段必须是唯一,这个条件很苛刻,所以一般情况下我们都是用创建时间或者是mongo自带的主键来排序,当然当高并发情况下创建时间也是可能存在重复,那么当这个唯一属性存在重复的时候,在翻页时我们将丢失某一条重复的数据(这个问题不知道如何解决)。我的业务场景中就有这么一个地方存在重复的,但是我在service那边做了redis的缓存,然后通过缓存的内存分页来解决了这一问题。(想到了一句话:遇到无法解决的问题那么就不去解决它^_^)

相关文章

  • mongo分页查询方式

    闲下来,想了下准备总结下最近在mongo查询上所遇到的一些问题,我在这里罗列一下。 1.mongo使用shell的...

  • Mongo分页查询优化

    最近使用skip和limit进行分页查询,当数据量增大时,发现响应时间不是很满意。官方文档对skip的描述:ski...

  • SQL limt优化

    避免数据量大时扫描过多的记录解决:子查询的分页方式或者JOIN分页方式。JOIN分页和子查询分页的效率基本在一个等...

  • MySQL百万级数据量分页查询方法及其优化建议

    通常我们使用offset+limit的方式进行分页查询,然而随着数据表数据量越来越大,这种分页查询的方式性能也会随...

  • hibernate中的查询

    HQL 查询所有 条件查询 分页查询 Criteria 查询所有 条件查询 分页查询 查询总记录 原生SQL

  • 2020-05-12

    序号分页方式说明性能优点缺点场景 From/SizeES默认分页查询方式低1)使用方便,符合SQL思想 2)不强制...

  • SCAN迭代器

    语法 SCAN cursor [MATCH pattern] [COUNT count] 通过类似 分页查询的方式...

  • MySQL 面试系列:MySQL 常见的开放性问题

    有一个超级大表,如何优化分页查询? 超级大表的分页优化分有以下两种方式: 数据库层面优化:利用子查询优化超多分页场...

  • elasticsearch 查询语句

    elasticsearch 查询语句 1、简单查询 不带参数、分页、排序查询 带分页、字段筛选查询 2、复杂查询 ...

  • Python操作三大数据库(1)-MySQL

    本章是直接操作MySQL数据库的实现方式 连接MySQL数据库 查询单条数据 查询多条数据 通过分页方式查询 插入...

网友评论

      本文标题:mongo分页查询方式

      本文链接:https://www.haomeiwen.com/subject/jfmubftx.html