mongodb数据查询

1.方法find():查询

db.集合名称.find({条件文档})

例如:查询年龄为20的学生

db.stu.find({age:20})

2.方法findOne():查询,只返回第一个

db.集合名称.findOne({条件文档})

3.方法pretty():将结果格式化

db.集合名称.find({条件文档}).pretty()

 

比较运算符:

等于:默认是等于判断,没有运算符

小于:$lt (less than)

小于等于:$lte (less than equal)

大于:$gte (greater than)

大于等于:$gte

不等于:$ne

例如:查找年龄大于等于20的学生

db.stu.find({age:{$gte:20}})

 

范围运算符:

使用"$in","$nin"判断是否在某个范围内

例如:查询年龄为18,28的学生

db.stu.find({age:{$in:[18,28]}})

 

逻辑运算符:

1. and:在json中写多个条件即可

例如:

查询年龄大于或等于18,并且性别为man的学生

db.stu.find({age:{$gte:18},gender:man})

2. or:使用$or,值为数组,数组中每个元素为json

查询年龄大于18,或者性别为man的学生

db.stu.find({$or:[{age:{$gt:18}},{gender:man}]})

结合运用例子:

查询年龄大于18或性别为man,并且姓名是李明

db.stu.find({$or:[{age:{$gt:18}},{gender:man}],name:'李明'})

 

支持正则表达式:

使用//或$regex编写正则表达式

查询姓黄的学生

db.stu.find({name:/^黄/})

db.stu.find({name:{$regex:'^黄'}})

 

limit和skip

1. 方法limit():用于读取指定数量的文档

db.集合名称.find().limit(number)

例如:查询2条学生信息

db.stu.find().limit(2)

2. 方法skip():用于跳过指定数量的文档

db.集合名称.find().skip(number)

例如:db.stu.find().skip(2)

3. 同时使用

db.stu.find().limit(4).skip(5)

db.stu.find().skip(5).limit(4)

 

自定义查询

使用$where后面写一个函数,返回满足条件的数据

例如查询年龄大于30的学生

db.stu.find({$where:function() {return this.age>30;}})

 

投影

在查询到的返回结果中,只选择必要的字段

db.集合名称.find({},{字段名称:1,...})

参数为字段与值,值为1表示显示

特殊:对于_id列默认是显示的,如果不显示需要明确设置为0

db.stu.find({},{_id:0,name:1,gender:1})

 

排序

方法sort(),用于对集进行排序

db.集合名称.find().sort({字段:1,...})

参数1为升序排序

参数-1为降序排序

例如:根据学号降序,再根据年龄升序

db.stu.find().sort({number:-1,age:1})

 

统计个数

方法count()用于统计结果集中文档条数

db.集合名称.find({条件}).count()

db.集合名称.count({条件})

db.stu.find({gender:man}).count()

db.stu.count({age:{$gt:20},gender:man})

 

消除重复

方法distinct()对数据进行去重

db.集合名称.distinct('去重字段',{条件})

db.stu.distinct('hometown',{age:{$gt:18}})

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值