zoukankan      html  css  js  c++  java
  • MongoDB查询

    一、基本操作

    # 查找全部数据
    db.集合名称.find()
    # 根据条件查找数据
    db.集合名称.find({条件文档})
    # 根据条件查找一条数据
    db.集合名称.findOne({条件文档})
    # 美化数据的输出格式
    db.集合名称名称.find({条件文档}).pretty()
    # 注意: findOne()不能用pretty()

    二、比较运算符

    等于: 默认的情况
    小于: $lt
    小于等于: $lte
    大于: $gt
    大于等于: $gte
    不等于: $ne
    # 例子
    db.stu.find({age: {$gt: 18}})

    三、范围运算符

    $in 在范围内
    $nin 不在范围内
    # 例子
    db.集合名称.find({age: {$in: [18, 24, 26]}})
    db.集合名称.find({age: {$nin: [18, 40, 45]}})

    四、逻辑运算符

    and
        在json中写多个条件即可
        db.stu.find({age: {$gte: 18}, hometown: '华山'})
    or
        使用$or,值为数组,数组中的每个元素是json
        db.stu.find({$or: [{age: {$gt: 18}}, {gender: true}]})
    
    orand 一起使用
    db.stu.find({$or: [{gender: false}, {age: {$lt: 30}}], hometown: "桃花岛"})

    五、正则表达式

    db.集合名称.find({sku: /正则表达式/})
    db.集合名称.find({sku: {$regex: '正则表达式'})
    # 推荐使用第二种,代码可读性高
    例子
    db.products.find({sku: /^3.*/})
    db.products.find({sku: {$regex: '3$'}})

    六、limit和skip

    # limit查询文档的数量,与mysql中的limit相似
    db.集合名称.find().limit(数量)
    
    # skip跳过文档的数量并输出余下的结果, 与mysql中的offset相似
    db.集合名称.find().skip(num)
    
    注意: 先limit,再skip效率高

    七、自定义查询

    db.集合名称.find({$where: 匿名函数})
    # 例子
    db.stu.find({$where: function(){
        return this.gender == false
    }})
    
    注意: 匿名函数的语法和JS一样

    八、投影

    作用: 在查询的返回值结果中,选择自己需要的字段
    格式: 
        db.集合名称.find({查询}, {投影})
    规则: 参数: 为字段的值
         值: 1为显示,0不显示
    例子
        db.stu.find({gender: false}, {_id: 0, name: 1, age: 1})
        注意:如果只设置_id = 0,那么其它字段全部显示

    九、排序

    sort()
    db.集合名称.find().sort({字段: value})
    value=1,是正序
    value=-1, 是倒序
    例子
    # 先根据age排序,再根据name排序   
    db.stu.find().sort({age: 1, name: -1})

     十、统计数量(count)

    count()
    db.集合名称.count({条件})
    或
    db.集合名称.find().count()
    # 例子
    db.stu.find({gender: false}).count()
    db.stu.count({age: {$gt: 18}})

    十一、去重(distinct)

    db.集合名称.distinct('去重字段', {条件})
    # 例子
    db.stu.distinct('hometown', {age: {$lte: 18}})
    # 结果
    [ "桃花岛", "蒙古", "大理" ]
    注意: 
    1. 去重字段,必须要用引号
    2. 去重字段和条件之间要用逗号隔开
    3. 获取的结果是列表
  • 相关阅读:
    android音乐播放器开发 SweetMusicPlayer 摇一摇换歌
    kernel logo到开机动画之间闪现黑屏(android 5.X)
    [DLX反复覆盖] hdu 3656 Fire station
    使用清华源 tensorflow 安装
    类别不平衡问题之SMOTE算法(Python imblearn极简实现)
    在Ubuntu 18.04上安装OpenCV 4(C ++和Python)
    OpenCV
    git clone速度太慢的解决办法
    OpenCV 3.4.2 环境搭建(适用于Ubuntu 一键安装)
    ubuntu16.04安装opencv3.4.1教程
  • 原文地址:https://www.cnblogs.com/wt7018/p/11913117.html
Copyright © 2011-2022 走看看