Mongodb从0到1系列四: Limit与Skip方法、排序、索引
2017-07-27 23:34
786 查看
Mongodb从0到1系列一:下载、安装、启动、停止
Mongodb从0到1系列二:数据库与集合操作文档、增删改查
Mongodb从0到1系列三: 条件查询、大小写
语法
假设我们在Student集合中插入了以下文档
> use test1
> db.student.remove({})
> db.student.insert({name:'Zhaoliu',age:25,course:'Chinese'})
> db.student.insert({name:'Zhangsan',age:22,course:'Chinese'})
> db.student.insert({name:'Lisi',age:23,course:'computer'})
> db.student.insert({name:'Liuneng',age:26,course:'English'})
> db.student.insert({name:'Wangwu',age:24,course:'Chinese'})
只显示两条记录:
MongoDB Enterprise > db.student.find().limit(2).pretty()
{
"_id" : ObjectId("5972b31100c6e9a07498d9fd"),
"name" : "Zhaoliu",
"age" : 25,
"course" : "Chinese"
}
{
"_id" : ObjectId("5972b31100c6e9a07498d9fe"),
"name" : "Zhangsan",
"age" : 22,
"course" : "Chinese"
}
跳过前三条记录:
MongoDB Enterprise > db.student.find().pretty().skip(3)
只显示第4条记录
MongoDB Enterprise > db.student.find().pretty().limit(1).skip(3)
或者
MongoDB Enterprise > db.student.find().pretty().skip(3).limit(1)
语法为:db.COLLECTION_NAME.find().sort({KEY:1})
将Student集合中的文档按照年龄升序排列
MongoDB Enterprise > db.student.find().sort({age:1})
将Student集合中的文档按照性名降序排列
MongoDB Enterprise > db.student.find().sort({name:-1})
9. 索引
MongoDB使用 ensureIndex() 方法来创建索引。ensureIndex()方法基本语法格式如下所示:db.COLLECTION_NAME.ensureIndex({KEY:1}),语法中 Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。
在student的name列上创建索引
MongoDB Enterprise > db.student.ensureIndex({"name":1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
另外,创建索引的时候可以加一些参数,比如background表示是否在后台创建,unique表示创建的索引是否唯一,name表示索引的名子
在student的age列上创建降序索引,索引名子指定为age_idx
MongoDB Enterprise > db.student.ensureIndex({"age":-1},{name:"age_idx"})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 2,
"numIndexesAfter" : 3,
"ok" : 1
}
查看student集合上的索引:
MongoDB Enterprise > db.student.getIndexes()
Mongodb从0到1系列二:数据库与集合操作文档、增删改查
Mongodb从0到1系列三: 条件查询、大小写
7. Limit与Skip方法
MongoDB的Limit方法与Skip方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。语法
假设我们在Student集合中插入了以下文档
> use test1
> db.student.remove({})
> db.student.insert({name:'Zhaoliu',age:25,course:'Chinese'})
> db.student.insert({name:'Zhangsan',age:22,course:'Chinese'})
> db.student.insert({name:'Lisi',age:23,course:'computer'})
> db.student.insert({name:'Liuneng',age:26,course:'English'})
> db.student.insert({name:'Wangwu',age:24,course:'Chinese'})
只显示两条记录:
MongoDB Enterprise > db.student.find().limit(2).pretty()
{
"_id" : ObjectId("5972b31100c6e9a07498d9fd"),
"name" : "Zhaoliu",
"age" : 25,
"course" : "Chinese"
}
{
"_id" : ObjectId("5972b31100c6e9a07498d9fe"),
"name" : "Zhangsan",
"age" : 22,
"course" : "Chinese"
}
跳过前三条记录:
MongoDB Enterprise > db.student.find().pretty().skip(3)
{ "_id" : ObjectId("5972b31100c6e9a07498da00"), "name" : "Liuneng", "age" : 26, "course" : "English" } { "_id" : ObjectId("5972b31100c6e9a07498da01"), "name" : "Wangwu", "age" : 24, "course" : "Chinese" }
只显示第4条记录
MongoDB Enterprise > db.student.find().pretty().limit(1).skip(3)
{ "_id" : ObjectId("5958f8b088c2ec197b6391e4"), "name" : "Liuneng", "age" : 26, "course" : "English" }
或者
MongoDB Enterprise > db.student.find().pretty().skip(3).limit(1)
{ "_id" : ObjectId("5972b31100c6e9a07498da00"), "name" : "Liuneng", "age" : 26, "course" : "English" }注意这里的limit(N)意思是显示记录条数的上限为N,并非显示前N条记录。
8. 排序
在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。语法为:db.COLLECTION_NAME.find().sort({KEY:1})
将Student集合中的文档按照年龄升序排列
MongoDB Enterprise > db.student.find().sort({age:1})
{ "_id" : ObjectId("5972b31100c6e9a07498d9fe"), "name" : "Zhangsan", "age" : 22, "course" : "Chinese" } { "_id" : ObjectId("5972b31100c6e9a07498d9ff"), "name" : "Lisi", "age" : 23, "course" : "computer" } { "_id" : ObjectId("5972b31100c6e9a07498da01"), "name" : "Wangwu", "age" : 24, "course" : "Chinese" } { "_id" : ObjectId("5972b31100c6e9a07498d9fd"), "name" : "Zhaoliu", "age" : 25, "course" : "Chinese" } { "_id" : ObjectId("5972b31100c6e9a07498da00"), "name" : "Liuneng", "age" : 26, "course" : "English" }
将Student集合中的文档按照性名降序排列
MongoDB Enterprise > db.student.find().sort({name:-1})
{ "_id" : ObjectId("5972b31100c6e9a07498d9fd"), "name" : "Zhaoliu", "age" : 25, "course" : "Chinese" } { "_id" : ObjectId("5972b31100c6e9a07498d9fe"), "name" : "Zhangsan", "age" : 22, "course" : "Chinese" } { "_id" : ObjectId("5972b31100c6e9a07498da01"), "name" : "Wangwu", "age" : 24, "course" : "Chinese" } { "_id" : ObjectId("5972b31100c6e9a07498da00"), "name" : "Liuneng", "age" : 26, "course" : "English" } { "_id" : ObjectId("5972b31100c6e9a07498d9ff"), "name" : "Lisi", "age" : 23, "course" : "computer" }
9. 索引
MongoDB使用 ensureIndex() 方法来创建索引。ensureIndex()方法基本语法格式如下所示:db.COLLECTION_NAME.ensureIndex({KEY:1}),语法中 Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。
在student的name列上创建索引
MongoDB Enterprise > db.student.ensureIndex({"name":1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
另外,创建索引的时候可以加一些参数,比如background表示是否在后台创建,unique表示创建的索引是否唯一,name表示索引的名子
在student的age列上创建降序索引,索引名子指定为age_idx
MongoDB Enterprise > db.student.ensureIndex({"age":-1},{name:"age_idx"})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 2,
"numIndexesAfter" : 3,
"ok" : 1
}
查看student集合上的索引:
MongoDB Enterprise > db.student.getIndexes()
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "test2.student" }, { "v" : 2, "key" : { "name" : 1 }, "name" : "name_1", "ns" : "test2.student" }, { "v" : 2, "key" : { "age" : -1 }, "name" : "age_idx", "ns" : "test2.student" } ]
相关文章推荐
- mongodb-$type、limit、skip、sort方法、索引、聚合
- java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作
- MongoDB Limit与Skip方法
- MongoDB学习(3)(条件查询,排序,索引的方法)
- MongoDB Limit与Skip方法
- 菜鸟的mongoDB学习---(五)MongoDB的limit、skip、sort方法
- MongoDB快速入门(十)- Limit(),Skip() 方法
- 菜鸟的mongoDB学习---(五)MongoDB的limit、skip、sort方法
- mongodb笔记04(MongoDB $type 操作符,Limit与Skip方法,sort()方法,索引,聚合(aggregate))
- MongoDB 数据分页和排序 limit,skip,sort用户
- MongoDB文档查询-分页查询(limit、skip)与查询结果排序(sort)
- MongoDB 中Limit与Skip的使用方法详解
- mongodb的聚合函数的$skip + $limit 方法运用 和 顺序优化。
- MongoDB Limit与Skip方法
- MongoDB Limit与Skip方法
- MongoDB入门---文档查询之$type操作符&limit方法&skip方法&简单排序(sort)操作
- MongoDB系列6:MongoDB索引的介绍
- MongoDB创建索引(不锁库方法)
- MongoDB的Limit方法返回数据