mongodb-find、分页、排序
2017-07-23 22:26
218 查看
内容全部来自网上的教程,记录下来,以便查询
1、基本操作
命令:db.[documentName].find ({条件},{键指定})
举例: db.persons.find({},{_id:0,name:1,country:1})
注意:默认情况下,显示ID
2、find查询
操作符
含义
$lt
<
$lte
<=
$gt
>
$gte
>=
$ne
!=
2.1 条件查询
a、查询出年龄在25到27岁之间的学生
db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})
b、查询出所有不是韩国籍的学生的数学成绩
db.persons.find({country:{$ne:” Korea”}},{_id:0,m:1})
2.2 包含或不包含
$in或$nin
a、查询国籍是中国或美国的学生信息
db.persons.find({country:{$in:[“USA”,“China”]}})
b、查询国籍不是中国或美国的学生信息
db.persons.find({country:{$nin:[“USA”,“China”]}})
2.3 or查询
$or
a、查询语文成绩大于85或者英语大于90的学生信息
db.persons.find({$or:[{c:{$gte:85}},{e:{$gte:90}}]},{_id:0,c:1,e:1})
2.4 null
把中国国籍的学生上增加新的键sex
db.person.update({country:”China”},{$set:{sex:”m”}},false,true)
a、查询出sex 等于 null的学生
db.persons.find({sex:{$in:[null]}},{country:1})
2.5 正则查询
a、查询出名字中存在”li”的学生的信息
db.persons.find({name:/li/i},{_id:0,name:1})
或者:
2.6 $not
$not可以用到任何地方进行取反操作
$not和$nin的区别是$not可以用在任何地方$nin只能用到集合上
a、查询出名字中不存在”li”的学生的信息
db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
2.7 数组查询$all和index应用
a、查询喜欢看MONGOD和JS的学生
db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0})
b、查询第二本书是JAVA的学生信息
db.persons.find({“books.1”:”JAVA”})
2.8 查询指定长度数组$size它不能与比较查询符一起使用
a、查询喜欢的书籍数量是4本的学生
db.persons.find({books:{$size:4}},{_id:0,books:1})
b、 查询出喜欢的书籍数量大于3本的学生
c、利用shell查询出Jim喜欢看的书的数量
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
obj = persons.next();
print(obj.books.length)
}
2.9、$slice
返回文档中指定数组的内部值
3.0、$where
查询年龄大于22岁,喜欢看C++书,在K学校上过学的学生信息
3、分页
3.1、limit返回指定的数据条数
查询出persons文档中前5条数据
3.2、Skip返回指定数据的跨度
查询出persons文档中5~10条的数据
4、排序
3.3、Sort返回按照年龄排序的数据[1,-1]
1表示正序 -1表示倒序
3.Sort返回按照年龄排序的数据[1,-1]
3.4、Limit和Skip完成分页
三条数据为一页进行分页
第一页:
第二页:
但是skip有性能问题:
可以增加一个date字段,每次查询操作的时候前后台传值完要把上次的最后一个文档的日期保存下来
db.persons.find({date:{$gt:日期数值}}).limit(3)
5、游标
3.5、利用游标遍历查询数据
var persons = db.persons.find();
while(persons.hasNext()){
obj = persons.next();
print(obj.name)
}
3.6、.游标几个销毁条件
1.客户端发来信息叫他销毁
2.游标迭代完毕
3.默认游标超过10分钟没用也会别清除
1、基本操作
命令:db.[documentName].find ({条件},{键指定})
举例: db.persons.find({},{_id:0,name:1,country:1})
注意:默认情况下,显示ID
2、find查询
操作符
含义
$lt
<
$lte
<=
$gt
>
$gte
>=
$ne
!=
2.1 条件查询
a、查询出年龄在25到27岁之间的学生
db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})
b、查询出所有不是韩国籍的学生的数学成绩
db.persons.find({country:{$ne:” Korea”}},{_id:0,m:1})
2.2 包含或不包含
$in或$nin
a、查询国籍是中国或美国的学生信息
db.persons.find({country:{$in:[“USA”,“China”]}})
b、查询国籍不是中国或美国的学生信息
db.persons.find({country:{$nin:[“USA”,“China”]}})
2.3 or查询
$or
a、查询语文成绩大于85或者英语大于90的学生信息
db.persons.find({$or:[{c:{$gte:85}},{e:{$gte:90}}]},{_id:0,c:1,e:1})
2.4 null
把中国国籍的学生上增加新的键sex
db.person.update({country:”China”},{$set:{sex:”m”}},false,true)
a、查询出sex 等于 null的学生
db.persons.find({sex:{$in:[null]}},{country:1})
2.5 正则查询
a、查询出名字中存在”li”的学生的信息
db.persons.find({name:/li/i},{_id:0,name:1})
或者:
2.6 $not
$not可以用到任何地方进行取反操作
$not和$nin的区别是$not可以用在任何地方$nin只能用到集合上
a、查询出名字中不存在”li”的学生的信息
db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
2.7 数组查询$all和index应用
a、查询喜欢看MONGOD和JS的学生
db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0})
b、查询第二本书是JAVA的学生信息
db.persons.find({“books.1”:”JAVA”})
2.8 查询指定长度数组$size它不能与比较查询符一起使用
a、查询喜欢的书籍数量是4本的学生
db.persons.find({books:{$size:4}},{_id:0,books:1})
b、 查询出喜欢的书籍数量大于3本的学生
c、利用shell查询出Jim喜欢看的书的数量
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
obj = persons.next();
print(obj.books.length)
}
2.9、$slice
返回文档中指定数组的内部值
3.0、$where
查询年龄大于22岁,喜欢看C++书,在K学校上过学的学生信息
db.persons.find({"$where":function(){ //得到查询结果的每一条文档 var books = this.books; //得到文档中的school对象 var school = this.school; //如果年纪>=22 if(this.age > 22){ var php = null; //遍历书籍 for ( var i = 0; i < books.length; i++) { if(books[i] == "C++"){ php = books[i]; //如果学校是真 if(school){ for (var j = 0; j < school.length; j++) { //判断是不是在K上学 if(school[j].school == "K"){ //返回是真 return true; } } break; } } } } }})
3、分页
3.1、limit返回指定的数据条数
查询出persons文档中前5条数据
3.2、Skip返回指定数据的跨度
查询出persons文档中5~10条的数据
4、排序
3.3、Sort返回按照年龄排序的数据[1,-1]
1表示正序 -1表示倒序
3.Sort返回按照年龄排序的数据[1,-1]
3.4、Limit和Skip完成分页
三条数据为一页进行分页
第一页:
第二页:
但是skip有性能问题:
可以增加一个date字段,每次查询操作的时候前后台传值完要把上次的最后一个文档的日期保存下来
db.persons.find({date:{$gt:日期数值}}).limit(3)
5、游标
3.5、利用游标遍历查询数据
var persons = db.persons.find();
while(persons.hasNext()){
obj = persons.next();
print(obj.name)
}
3.6、.游标几个销毁条件
1.客户端发来信息叫他销毁
2.游标迭代完毕
3.默认游标超过10分钟没用也会别清除
相关文章推荐
- MongoDB之find详解,分页与排序,游标
- mongoDB的Find详解、分页和排序、游标
- 3.非关系型数据库(Nosql)之mongodb:升降序排序,排序分页,$all,$in,$nin,$or,$nor, $exists,游标,更新(update,$set,$unset,$inc)
- MongoDB 数据分页和排序 limit,skip,sort用户
- mongoDB(4):find()查询、分页、游标
- 3.非关系型数据库(Nosql)之mongodb:升降序排序,排序分页,$all,$in,$nin,$or,$nor, $exists,游标,更新(update,$set,$unset,$inc)
- MongoDB_06之查询+分页查询与排序
- MongoDB 学习笔记(三):分页、排序与游标
- MongoDB 学习笔记(三):分页、排序与游标
- MongoDB文档查询-分页查询(limit、skip)与查询结果排序(sort)
- mongodb group操作 以及管道 aggregate 分组排序分页
- C# MongoDB 查询,分组,聚合,排序,条件,分页
- MongoDB数据查询,分页,排序
- mongodb java增删该查和模糊、排序和分页查询
- mongodb 分页查询并 根据传入的经纬度计算计算两点距离进行排序
- Mongodb 3.2 Java 显示指定字段 条件查询 分页排序
- 在排序数组中找到第k个元素 find the k-th element in two sorted arrays
- mongodb-findAndModify(来源于mongodb权威指南)
- mongodb的分页查询
- 不使用“DataSourceControl DataSource”的情况下如何分页和排序