`

mongodb中分页显示数据集的学习

阅读更多
  这次继续看mongodb中的分页。首先依然是插入数据:

1)
db.Blog.insert( { name : "Denis",  age : 20, city : "Princeton" } )
db.Blog.insert( { name : "Abe",    age : 30, city : "Amsterdam" } )
db.Blog.insert( { name : "John",   age : 40, city : "New York"  } )
db.Blog.insert( { name : "Xavier", age : 10, city : "Barcelona" } )
db.Blog.insert( { name : "Zen",    age : 50, city : "Kyoto"     } )


2) 查询下
   db.Blog.find()
  结果为:
{ "_id" : ObjectId("51028ae0a8c33b71ed76a807"), "name" : "Denis", "age" : 20, "city" : "Princeton" }
{ "_id" : ObjectId("51028ae0a8c33b71ed76a808"), "name" : "Abe", "age" : 30, "city" : "Amsterdam" }
{ "_id" : ObjectId("51028ae2a8c33b71ed76a809"), "name" : "John", "age" : 40, "city" : "New York" }
{ "_id" : ObjectId("51028ae2a8c33b71ed76a80a"), "name" : "Xavier", "age" : 10, "city" : "Barcelona" }
{ "_id" : ObjectId("51028ae4a8c33b71ed76a80b"), "name" : "Zen", "age" : 50, "city" : "Kyoto" }


3)每次只显示2条,使用limit就可以了
   db.Blog.find().limit(2)

结果:
   { "_id" : ObjectId("5103e22c88a39c3c0b2585e1"), "name" : "Denis", "age" : 20, "city" : "Princeton" }
{ "_id" : ObjectId("5103e22d88a39c3c0b2585e2"), "name" : "Abe", "age" : 30, "city" : "Amsterdam" }
  需要排下序,没问题,加上sort就可以了
   ,比如根据name排序
  db.Blog.find().sort({name: 1}).limit(2)
 
{ "_id" : ObjectId("5103e22d88a39c3c0b2585e2"), "name" : "Abe", "age" : 30, "city" : "Amsterdam" }
{ "_id" : ObjectId("5103e22c88a39c3c0b2585e1"), "name" : "Denis", "age" : 20, "city" : "Princeton" }
   如果只需要显示某些列,可以这样:
   db.Blog.find(null, {name: 1, _id: 0}).sort({name: 1}).limit(2)
   _id:0这样的方式,连id列也不显示了

  只显示
  { "name" : "Abe" }
{ "name" : "Denis" }
   
3 分页
   比如要范围第3,第4条记录,使用skip(2),跳过2条

db.Blog.find(null, {name: 1, _id: 0}).sort({name: 1}).limit(2).skip(2)
   结果为:
{ "name" : "John" }
{ "name" : "Xavier" }

如果skip的数超过记录条数,也是不会报错的了:

  比如:
db.Blog.find(null, {name: 1, _id: 0}).sort({name: 1}).limit(2).skip(6)

   另外,使用$natural参数可以倒过来输出所有记录,比如:
  db.Blog.find().sort( { $natural: -1 } )
{ "_id" : ObjectId("5103eaa688a39c3c0b2585ed"), "name" : "Zen", "age" : 50, "city" : "Kyoto" }
{ "_id" : ObjectId("5103eaa588a39c3c0b2585ec"), "name" : "Xavier", "age" : 10, "city" : "Barcelona" }
{ "_id" : ObjectId("5103eaa588a39c3c0b2585eb"), "name" : "John", "age" : 40, "city" : "New York" }
{ "_id" : ObjectId("5103eaa588a39c3c0b2585ea"), "name" : "Abe", "age" : 30, "city" : "Amsterdam" }
{ "_id" : ObjectId("5103eaa588a39c3c0b2585e9"), "name" : "Denis", "age" : 20, "city" : "Princeton" }
   要注意的是,居然说超过32MB  会报错,说要用 cursor.limit()或者在要排序的列中创建索引,才不报错?
3
0
分享到:
评论
1 楼 di1984HIT 2014-10-24  
不错啊。~~~~~

相关推荐

    mongodb-测试数据

    这个“mongodb-测试数据”压缩包显然包含了一些用于测试MongoDB功能的样例数据集,特别是针对增、删、改、查(CRUD)操作的学习和性能测试。 在深入探讨MongoDB的测试数据之前,我们先来了解一下MongoDB的基本概念...

    MongoDB实验数据集

    在"MongoDB实验数据集"中,我们可以预期找到一系列的数据集合,这些集合可能用于测试、学习或验证MongoDB的各种功能和操作。在这个压缩包中,"数据资源"可能包含了多个文档或JSON文件,每个文件代表一个MongoDB的...

    geoserver发布mongodb矢量数据地图服务.docx

    Geoserver发布MongoDB矢量数据地图服务 Geoserver是一款功能强大且开源的地理信息系统(GIS)服务器,能够实现空间数据的存储、处理和发布。MongoDB是一款NoSQL数据库,能够存储大量的矢量数据。本文将介绍如何使用...

    MongoDB 学习资料集锦

    "MongoDB 学习资料集锦" 包含了深入学习 MongoDB 的关键资源,如 "mongodb权威指南" 和 "官方的详细手册"。这些资料将帮助初学者和经验丰富的开发人员掌握 MongoDB 的核心概念、操作以及最佳实践。 首先,"mongodb...

    SpringBoot+MongoDB+Echarts图表数据可视化

    综上所述,"SpringBoot+MongoDB+Echarts图表数据可视化"项目利用SpringBoot作为后端处理逻辑,MongoDB作为数据存储,Echarts作为前端数据展示工具,共同实现了高效、直观的数据可视化解决方案。这个组合在现代Web...

    Mongodb地理信息查询案例数据集

    mongodb官网给出了一个地理信息...但因为网络原因,导致该数据集无法下载。因此下载下来供各位研究学习使用。 原资源链接: https://raw.githubusercontent.com/mongodb/docs-assets/geospatial/neighborhoods.json ...

    MongoDb多数据中心

    MongoDB作为一个高性能、高可用性、以及易于扩展的开源NoSQL数据库,被广泛应用于需要处理大量数据的场景中。随着业务的发展,单一数据中心往往难以满足地理分布、数据可用性和合规性等需求。这时,多数据中心部署...

    FineReport如何连接和使用MongoDB数据库

    随着NoSQL数据库越来越流行,MongoDB数据库作为NoSQL数据库中的领头羊,使用也越来越广泛。为此,FineReport V8.0版本提供了数据连接和数据集接口,可以通过开发一款可以连接和使用的MongoDB数据库的插件。

    MongoDB;学习资料

    7. **复制集(Replication)**:复制集是MongoDB提供高可用性的一种方式,通过在多个节点间复制数据,确保在单点故障时能快速恢复服务。主节点负责写入,副节点同步数据并提供读取服务。 8. **GridFS**:MongoDB的...

    MongoDB的元数据与数据类型.pdf

    MongoDB是一个流行的开源、分布式文档数据库,被广泛用于处理结构化和半结构化的数据。其设计目标是提供高性能、高可用性和...因此,深入学习MongoDB的元数据和数据类型对于任何MongoDB开发者或管理员来说都是必要的。

    Mongodb 学习 PPT上课教程

    4. 高可用性: MongoDB 支持在复制集(Replica Set)通过异步复制达到故障转移,自动恢复,集群中主服务器崩溃停止服务和丢失数据,备份服务器通过选举获得大多数投票成为主节点,以此来实现高可用。 5. 水平拓展: ...

    mongodb副本集搭建

    MongoDB 副本集搭建是 MongoDB 的高可用性解决方案之一,它可以提供数据的冗余存储和自动故障转移,确保数据的高可用性和可靠性。下面将详细介绍 MongoDB 副本集搭建的步骤和过程。 一、安装环境 在开始搭建 ...

    收集的mongodb开发学习资料

    7. **复制集**:复制集是MongoDB的高可用性和容错性机制,通过在多个节点间同步数据来实现。了解如何设置和管理复制集,处理故障转移和恢复是重要的技能。 8. **分片**:对于大数据场景,分片可以将数据分布在多台...

    五、MongoDB 学习PPT

    MongoDB的高可用性体现在其复制集(replica sets)功能上,它可以在多个节点间复制数据,确保即使在单个节点故障时也能提供服务。此外,MongoDB的分片(sharding)特性允许将数据分布到多个服务器,以实现水平扩展,...

    从浅入深学习MongoDB视频教程全集

    教程名称:从浅入深学习 MongoDB视频教程全集 课程目录:【】MongoDB视频教程-00_MongoDB代码【】MongoDB视频教程01_第一讲_上【】MongoDB视频教程02_第一讲_下【】MongoDB视频教程03_第二讲_上【】MongoDB视频教程...

    mongodb设置副本集

    副本集是MongoDB提供的一种数据复制机制,它能够保持多个数据副本的一致性,并在主节点故障时自动切换到备份节点,从而保障服务的连续性。 在Linux环境下设置MongoDB副本集,首先需要创建存储数据的目录。例如,...

    K8s 部署 MongoDB(副本集)

    MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可提供冗余和高可用性,是所有生产部署的基础。也可以说,副本集类似于有自动故障恢复功能的主从集群。通俗的讲就是用多台机器进行同一...

    mongodb 复制集搭建实例

    复制集是MongoDB中的一个重要特性,它提供了数据冗余和故障切换能力,以确保数据的高可用性。在本实例中,我们将详细介绍如何搭建MongoDB的复制集。 1. **复制集的概念** 复制集是MongoDB中一组MongoDB节点的集合...

Global site tag (gtag.js) - Google Analytics