mongodb 高级查询(其一)

mongodb 高级用法:
高级查询:
# 查询所有的包含 age:18 的 pretty() 表示格式化输出
  db.stu.find({'age':18}).pretty()
  # 查询第一个 age:18
  db.stu.findOne({'age':18})


  '''
  比较运算符:
     等于,默认是等于判断,没有运算符
     小于 $lt
     小于或等于 $lte
     大于 $gt
     大于或等于 $gte
     不等于 $ne
  '''
  # 查询 年龄大于 18的
  db.stu.find({'age':{$gte:18}})

  '''
  范围运算符:
     使用$in,$nin 判断是否在某个范围内
  '''
  # 查询年龄在 18,20 之间的
  db.stu.find({'age':{$in:[18,20]}})


  '''
  逻辑运算符:
     逻辑或:使用$or
     逻辑与:默认是逻辑与的关系
  '''
  # 查询 年纪18 或者名字为 小米的
  db.stu.find({$or:[{age:18},{name:'小米'}]})
  # 查询 年纪18 与名字为 小米的
  db.stu.find({age:18},{name:'小米'})


  '''
  正则表达式:
      使用/ /或$regex编写正则表达式
  '''
    # 匹配以 黄 开头的 名称
    db.stu.find({name:/^黄/})
    db.stu.find({name:{$regex:'^黄'}}})
分页查询:
方法limit():用于读取指定数量的文档
方法skip():用于跳过指定数量的文档
    # 显示2条数据
    db.stu.find().limit(2)
    #从第3条开始显示
    db.stu.find().skip(2)
    # 联合使用建议先 skip() 然后 limit()
    # 相当于分页 查询6 到 8 条数据 从 六条开始,查询四条数据
    db.stu.find().limit(4).skip(5)
自定义函数
1,mongodb 就像一个 js 解释器 我们可以写 js 函数
2,$where后面写一个函数,返回满足条件的数据
3,可以使用 js 增加额外的功能
    # 查询年龄大于30的学生
    db.stu.find({$where : function(){return this.age>20}})
每条数据的过滤:
1,在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段
2,值为 1或者true 表示显示 你可以设置 _id:0 _id 就不会显示
    # 只显示 name 与 gender 字段 _id字段也会显示 你可以设置 _id:0
    db.stu.find({},{name:1, gender:true})
    db.stu.find({},{name:true, gender:1,_id:0})
排序:
1,方法sort(),用于对结果集进行排序
2,参数1为升序排列 参数-1为降序排列
3,排序比较的是字符串大小 从开头进行比较
    # 根据性别降序,再根据年龄升序
    db.stu.find().sort({gender:-1,age:1})
统计个数与去重复:
1,方法count()用于统计结果集中文档条数
2,方法distinct()对数据进行去重
    # 统计年龄大于20的男性人数
    db.stu.count({age:{$gt:20},gender:true})
    
    # 查找年龄大于18的学生,来自哪些省份
    db.stu.distinct('hometown',{age:{$gt:18}})

 

posted @ 2018-10-17 22:05  十七楼的羊  阅读(314)  评论(0编辑  收藏  举报