• MongoDB 教程(八):查询文档、条件操作符


    MongoDB 查询文档

      MongoDB 查询文档使用 find() 方法

      find() 方法以非结构化的方式来显示所有文档。

    MongoDB 查询数据的语法格式如下:

    db.collection.find(query, projection)
    • query :可选,使用查询操作符指定查询条件
    • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

      如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下

    >db.col.find().pretty()

      pretty() 方法以格式化的方式来显示所有文档。

      除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。

    MongoDB 与 RDBMS Where 语句比较

      如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

      

    MongoDB AND 条件

      MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

    语法格式如下:

    >db.col.find({key1:value1, key2:value2}).pretty()

    实例

      以下实例通过 by 和 title 键来查询 菜鸟教程 中 MongoDB 教程 的数据

    > db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()
    {
            "_id" : ObjectId("56063f17ade2f21f36b03133"),
            "title" : "MongoDB 教程",
            "description" : "MongoDB 是一个 Nosql 数据库",
            "by" : "菜鸟教程",
            "url" : "http://www.runoob.com",
            "tags" : [
                    "mongodb",
                    "database",
                    "NoSQL"
            ],
            "likes" : 100
    }

      以上实例中类似于 WHERE 语句:WHERE by='菜鸟教程' AND title='MongoDB 教程'

    MongoDB OR 条件

      MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

    >db.col.find(
       {
          $or: [
             {key1: value1}, {key2:value2}
          ]
       }
    ).pretty()

    实例

      以下实例中,我们演示了查询键 by 值为 菜鸟教程 或键 title 值为 MongoDB 教程 的文档。

    >db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

    AND 和 OR 联合使用

      以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句为: 'where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')'

    >db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

    补充:

      

    MongoDB 条件操作符

      条件操作符用于比较两个表达式并从mongoDB集合中获取数据。

      

    MongoDB 使用 (<) 和 (>) 查询 - $lt 和 $gt

      如果你想获取"col"集合中 "likes" 大于100,小于 200 的数据,你可以使用以下命令:

    db.col.find({likes : {$lt :200, $gt : 100}})

      类似于SQL语句:

    Select * from col where likes>100 AND  likes<200;

    补充说明

      

      

  • 相关阅读:
    Mac普通用户修改了/etc/sudoers文件的解决办法
    python对缓存(memcached,redis)的操作
    线程、进程、协程和队列
    python作用域和多继承
    sokect编程进阶
    socket编程基础
    python面相对象进阶
    python异常处理
    configparser模块
    subprocess模块
  • 原文地址:https://www.cnblogs.com/zhangchaoran/p/9579148.html
Copyright © 2020-2023  润新知