> db.mediaCollection.find().skip().toArray()
[
{
"_id" : ObjectId("5353463193efef02c962da73"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind",
"Tracklist" : [
{
"Track" : "",
"Title" : "Smells like teen spirit",
"Length" : "5:02"
},
{
"Track" : "",
"Title" : "In Bloom",
"Length" : "4:15"
}
]
}
]

检索数据可以使用sort()方法来对数据进行排序,指定排序字段,并使用1或-1来指定排序方式是升序或降序。类似于SQL语句中的order by语句。

可以使用limit()方法来读取指定数量的数据,还可以使用skip()方法来跳过指定数量的数据。对分页性能上面效率非常高。

1. 语法

>db.COLLECTION_NAME.find().sort({KEY:1})

>db.COLLECTION_NAME.find().limit(NUMBER)

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

2. sort()

> db.mediaCollection.find().sort({"Tracklist":}).toArray()
[
{
"_id" : ObjectId("5353462f93efef02c962da71"),
"Type" : "Book",
"Title" : "Definitive Guide to <a href="http://www.ttlsa.com/mongodb" title="mongodb"target="_blank">MongoDB</a>, the",
"ISBN" : "987-1-4302-3051-9",
"Publisher" : "Apress",
"Author" : [
"Membrey, Peter",
"Plugge, Eelco",
"Hawkins, Tim"
]
},
{
"_id" : ObjectId("5353462f93efef02c962da72"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind"
},
{
"_id" : ObjectId("5353463193efef02c962da73"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind",
"Tracklist" : [
{
"Track" : "",
"Title" : "Smells like teen spirit",
"Length" : "5:02"
},
{
"Track" : "",
"Title" : "In Bloom",
"Length" : "4:15"
}
]
}
]
> db.mediaCollection.find().toArray()
[
{
"_id" : ObjectId("5353462f93efef02c962da71"),
"Type" : "Book",
"Title" : "Definitive Guide to MongoDB, the",
"ISBN" : "987-1-4302-3051-9",
"Publisher" : "Apress",
"Author" : [
"Membrey, Peter",
"Plugge, Eelco",
"Hawkins, Tim"
]
},
{
"_id" : ObjectId("5353462f93efef02c962da72"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind"
},
{
"_id" : ObjectId("5353463193efef02c962da73"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind",
"Tracklist" : [
{
"Track" : "",
"Title" : "Smells like teen spirit",
"Length" : "5:02"
},
{
"Track" : "",
"Title" : "In Bloom",
"Length" : "4:15"
}
]
}
]

注意:如果指定的排序键不存在,那么数值将以它们插入的顺序升序返回。

3. limit()

该函数用来指定返回结果的最大数量。

> db.mediaCollection.find().limit().toArray()
[
{
"_id" : ObjectId("5353462f93efef02c962da71"),
"Type" : "Book",
"Title" : "Definitive Guide to MongoDB, the",
"ISBN" : "987-1-4302-3051-9",
"Publisher" : "Apress",
"Author" : [
"Membrey, Peter",
"Plugge, Eelco",
"Hawkins, Tim"
]
}
]

4. skip()

跳过前面两条数据。

> db.mediaCollection.find().skip().toArray()
[
{
"_id" : ObjectId("5353463193efef02c962da73"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind",
"Tracklist" : [
{
"Track" : "",
"Title" : "Smells like teen spirit",
"Length" : "5:02"
},
{
"Track" : "",
"Title" : "In Bloom",
"Length" : "4:15"
}
]
}
]

5. 组合使用

[
{
"_id" : ObjectId("5353462f93efef02c962da71"),
"Type" : "Book",
"Title" : "Definitive Guide to MongoDB, the",
"ISBN" : "987-1-4302-3051-9",
"Publisher" : "Apress",
"Author" : [
"Membrey, Peter",
"Plugge, Eelco",
"Hawkins, Tim"
]
},
{
"_id" : ObjectId("5353462f93efef02c962da72"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind"
},
{
"_id" : ObjectId("5353463193efef02c962da73"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind",
"Tracklist" : [
{
"Track" : "",
"Title" : "Smells like teen spirit",
"Length" : "5:02"
},
{
"Track" : "",
"Title" : "In Bloom",
"Length" : "4:15"
}
]
}
]
> db.mediaCollection.find().sort({"Tracklist":}).limit().skip().toArray()
[
{
"_id" : ObjectId("5353462f93efef02c962da72"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind"
}
]

6. 自然顺序$natural

> db.mediaCollection.find().sort( { $natural: - } ).toArray()
[
{
"_id" : ObjectId("5353463193efef02c962da73"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind",
"Tracklist" : [
{
"Track" : "",
"Title" : "Smells like teen spirit",
"Length" : "5:02"
},
{
"Track" : "",
"Title" : "In Bloom",
"Length" : "4:15"
}
]
},
{
"_id" : ObjectId("5353462f93efef02c962da72"),
"Type" : "CD",
"Artist" : "Nirvana",
"Title" : "Nevermind"
},
{
"_id" : ObjectId("5353462f93efef02c962da71"),
"Type" : "Book",
"Title" : "Definitive Guide to MongoDB, the",
"ISBN" : "987-1-4302-3051-9",
"Publisher" : "Apress",
"Author" : [
"Membrey, Peter",
"Plugge, Eelco",
"Hawkins, Tim"
]
}
]

转载至http://blog.fens.me/nodejs-mongoose-json/,

mongodb sort limit和skip用法的更多相关文章

  1. 菜鸟的mongoDB学习---(五)MongoDB的limit、skip、sort方法

    limit方法 假设你须要在MongoDB中读取指定数量的数据记录.能够使用MongoDB的Limit方法,limit()方法接受一个数字參数,该參数指定从MongoDB中读取的记录条数. mongo ...

  2. MongoDB之Limit选取Skip跳过Sort排序

    1.Limit选取 我要从Document中取出多少个 只要2条Document db.Wjs.find().limit(2) 2.Skip跳过 我要跳过多少个Document 我要跳过前两个Docu ...

  3. mongodb中limit与skip方法

    Mongodb Limit()方法 如果需要在mongodb中获取指定数量的数据记录,这时候就要用到limit()方法,该方法需要接收一个数字参数 基本语法:  DB.COLLECTION_NAME. ...

  4. MongoDB 使用Limit和Skip完成分页 和游标(二)

    //$slice操作符返回文档中指定数组的内部值 //查询出Jim书架中第2~4本书 db.persons.find({name:"jim"},{books:{"$sli ...

  5. MongoDB 之 Limit 选取 Skip 跳过 Sort 排序 MongoDB - 7

    我们已经学过MongoDB的 find() 查询功能了,在关系型数据库中的选取(limit),排序(sort) MongoDB中同样有,而且使用起来更是简单 首先我们看下添加几条Document进来 ...

  6. 7,MongoDB 之 Limit 选取 Skip 跳过 Sort 排序

    我们已经学过MongoDB的 find() 查询功能了,在关系型数据库中的选取(limit),排序(sort) MongoDB中同样有,而且使用起来更是简单 首先我们看下添加几条Document进来 ...

  7. MongoDB limit 选取 skip跳过 sort排序 方法

    MongoDB  limit 选取 skip跳过 sort排序 在mysql里有order by  MongoDB用sort代替order by > db.user.find() { " ...

  8. mongodb的聚合aggregate|group|match|project|sort|limit|skip|unwind

    聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum().avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和 ...

  9. MongoDB入门---文档查询之$type操作符&limit方法&skip方法&简单排序(sort)操作

    上一篇文章呢,已经分享过了一部分查询操作了,这篇文章呢?就来继续分享哈.接下来呢我们直接看MongoDB中的$type操作符哈.它呢是基于BSON类型来检索集合中匹配的数据类型,并且返回结果,在Mon ...

随机推荐

  1. Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)

    原文地址:http://blog.csdn.net/sttyytw/article/details/17005263 声明:本教程在參考了下面博文,并经过自己的摸索后实际操作得出,本教程系本人原创,因 ...

  2. [AngularJS] ngPluralize

    ngPluralize is a directive that displays messages according to en-US localization rules. <script& ...

  3. JMeter在里面Json数据处理方法

    http://eclipsesource.com/blogs/2014/06/12/parsing-json-responses-with-jmeter/ Json作为一种数据交换格式在网络开发.特别 ...

  4. UML简易看懂

    这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...

  5. NYOJ 980 格子刷油漆 动态规划

    这道题目状态转移方程比较复杂,刚开始以为没这么多情况,看了好多大牛的博客再加上与同学讨论才看懂,写下心得. 因为起点不固定,所以我们一个一个来考虑,先从角上考虑,设三个数组来表示分别为D,A,Sum, ...

  6. 触摸事件 Touch MotionEvent ACTION

    MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,MotionEvent包含了关于发生触摸的位置.时间信息,以及触摸事件的其他细节. 获取MontionEvent对 ...

  7. c# 字符串编码问题

    一. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...

  8. Dragger代码实现

    转自:http://www.apkbus.com/blog-705730-60436.html 在工程中引入Dagger 如果想使用Dagger的话,需要添加两个函数库: dependencies { ...

  9. 禁止Windows远程桌面拷贝文件

    通过组策略,我们可以解决以上问题,开始菜单运行输入gpedit.msc,进入“计算机配置”项,按顺序进入“管理模板”.“windows组件”.“终端服务”.“客户端/服务器数据重定向”.在详细描述栏中 ...

  10. TreeView 数据绑定及选中命令处理

    昨天接近下班,一个群里面的网友,问treeView绑定后  选中命令怎么来处理,怎么没有效果,而且用MVVM的方式来写:快下班了本来想远程帮他看下,结果就说写个Demo给他看:再加上选中传参: 下面分 ...