MongDB的高级查询
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongDB的高级查询相关的知识,希望对你有一定的参考价值。
1、条件操作符(<,<=,=,!=,>=,>)
db.getCollection('集合名').find( "age" : $gt: 22 ); // 大于: 字段> 22
db.getCollection('集合名').find( "age" : $lt: 22 ); // 小于: 字段 < 22
db.getCollection('集合名').find( "age" : $ne: 22 ); // 等于: 字段 = 22
db.getCollection('集合名').find( "age" : $eq: 22 ); // 不等于:字段 != 22
db.getCollection('集合名').find( "age" : $gte: 22 ); // 大于等于: 字段 >= 22
db.getCollection('集合名').find( "age" : $lte: 22 ); // 小于等于: 字段 <= 22
2、 逻辑运算符and和or
查询年龄大于18,并且性别是1,相当与and
db.集合名.find(age:$gte:18,gender:1)
or的用法,或者年龄是20大于等于,或者工资大于5000,或者是HR
db.mycollection1.find(
$or: [
age: $gte: 20 ,
salary: $gt: 5000 ,
job: "HR"
]
)
3、范围查找($in,$nin,$all)相当于sql的in和notIn
db.getCollection('user').find( "age" : $in: [22,25] ); //age是22或25
db.getCollection('user').find( "age" : $nin: [22,25] ); //age不是22和25的db.getCollection('user').find( "age" : $all: [22] ); //年龄符合22岁的所有用户
4、判断字段是否存在($exists)
查询所有存在 age 字段的记录
db.getCollection('user').find( "age" : $exists: true );
查询所有不存在 age2 字段的记录
db.getCollection('user').find( "age2" : $exists: false );
5、null查询
db.getCollection('user').find( "age" : null)
mongoDB本身对于不存在 age 字段的值默认是null。
6、取模运算( $mod)
db.getCollection('user').find( age: $mod : [ 10 , 5 ] )
表示除以10,余数是5的,age点段都会被查出来
7、 查询记录条数(count)
db.mycollection1.find().count() db.mycollection1.count( 查询条件 )
8、limit和skip
# 限定显示条数 db.mycollection1.find().limit(数量) # 跳过指定第几条数据 db.mycollection1.find().skip(2) # 混合使用 db.mycollection1.find().limit(10).skip(3)
9、自定义函数查询
$where: function()...
列如:查询返回年龄大于等于18的用户
db.mycollection1.find( $where: function() return this.age >= 18; )
10、排序sort
sort用于排序,-1表示降序,1表示升序,也可以多个字段排序
db.getCollection('user').find().sort(age:-1)
11、投影:查询条件中只查询选择的字段
参数为字段与值,值为1表示显示,值为0不显示
db.stu.find(查询条件,_id:0,name:1,gender:1)
12、去重distinct()函数
# 格式为: db.集合名.distinct( "指定字段", 查询条件 ) # 如 db.mycollection1.distinct( "job", age: $lt: 40 )
13、正则表达
有两种方法:
/表达式内容/
$regex: "表达式内容"
db.mycollection1.find( name: /^Ja\\w+$/ ) # 或 db.mycollection1.find( name: $regex: "/^Jaso\\w?$" )
Aggregation是MongoDB特有的一种Pipline管道型、聚合查询方式。后记
以上是关于MongDB的高级查询的主要内容,如果未能解决你的问题,请参考以下文章