mongo shell 之文档 分页&排序

来源:互联网 发布:s曲线加速算法 博客 编辑:程序博客网 时间:2024/06/07 23:03

    mongo shell 中的分页排序,和mysql 类似, 也是结合使用skip 和 limit 来实现分页的功能. 排序使用sort 进行排序

    limit(num) : 查询符合条件的前几条数据

    skip(num):  跳过符合条件的前多少条数据

    sort({key:1}): 通过key 将结果集排序

  

1. 初始化数据:

    通过js 的for 循环批量插入数据100条数据

for( var i=0; i<100; i++) {  db.persons.insert({_id:i, name:"zhangsan_" + (100 -i), age:20+i%5})}

2. limit : 查询符合条件的结果的前几条数据


3. skip: 跳过符合条件的前多少条数据


3. sort: 排序, 1表示升序, -1 表示降序, 可根据多个字段进行排序,


4. 游标:

   4.1. 游标销毁条件:
        1. 客户端发消息销毁
      2. 游标迭代完销毁
      3. 默认游标超过10分钟没使用也会被清楚

   4.2 js 使用游标遍历输出:      

       var persons = db.persons.find().limit(5)
            while(persons.hasNext()){
            obj=persons.next();
            print(obj._id + " --> " + obj.name)
        }

     


5. 快照:
   在使用游标时,如果不使用快照的话,有可能导致数据重复读,重复写操作, 因为如果在游标变量的时候,文档发送了扩容,那么mongodb 会进行扩容,将内存重新分配,文档顺序重新排列

    

    快照使用方式:


       var persons = db.persons.find().limit(5).snapshot()
            while(persons.hasNext()){
            obj=persons.next();
            print(obj._id + " --> " + obj.name)
        }


1 0
原创粉丝点击