• 6.查询文档


    Mongodb一般使用的是find进行查询文档

    关于find:

    • find 是Mongodb中查询数据的基本指令,相当于SQL中的select
    • find返回的游标

    find示例:

      db.movies.find({"year":1975})    //单条件查询

      db.movies.find({"year":1989,"titile":"Batman"})   //多条件and查询

      db.movies.find({$and:[{"title":"batman"},{"category":"action"}]})   //and查询的另一种形式

      db.movies.find({$or:[{"year":1989},{"title":"batman"}]})  //多条件or查询

      db.movies.find({"title":/^B/}) //按正则表达式查找  

    查询条件对照表:

      

            a=1  AND b=1                                {a:1,b:1} 或者{$and: [{a:1},{b:1}]}

        a=1   OR  b=1                                                    {$or :[{a:1},{b:1}]}

            a IS  NULL                    {a:{$exists:false}}

        a  IN  (1,2,3)                  {a:{$in:[1,2,3]}}

    • $lt:存在并小于
    • $lte:存在并小于等于
    • $gt:存在并大于
    • $gte:存在并大于等于
    • $ne:不存在或存在但不等于
    • $in:存在并在指定数组中
    • $nin:不存在或不在指定数组中
    • $or:匹配两个或多个条件中的一个
    • $and:匹配全部条件

    使用find 支持使用"field.sub_field"的形式查询子文档。

    > db.fruit.insertOne({name:"apple",from:{count:"china",province:"Guangdong"}})   //插入子文档
    {
        "acknowledged" : true,
        "insertedId" : ObjectId("625a7016a1fbd7dca4520187")
    }
    > 
    > 
    > db.fruit.find().pretty()    //查询文档
    {
        "_id" : ObjectId("625a67daa1fbd7dca4520184"),
        "name" : "apple",
        "from" : "China"
    }
    { "_id" : ObjectId("625a67daa1fbd7dca4520185"), "name" : "pear" }
    { "_id" : ObjectId("625a67daa1fbd7dca4520186"), "name" : "orange" }
    {
        "_id" : ObjectId("625a7016a1fbd7dca4520187"),
        "name" : "apple",
        "from" : {
            "count" : "china",
            "province" : "Guangdong"
        }
    }

    这里我们怎样来查看子文档

    > db.fruit.find({"from.count":"china"})
    { "_id" : ObjectId("625a7016a1fbd7dca4520187"), "name" : "apple", "from" : { "count" : "china", "province" : "Guangdong" } }   //这种是正确的
    > 
    
    > db.fruit.find({"from":{count:"china"}})    //这种是错误的,查出来的是空值。。。

    这里可以看到如果想要查询子文档的话,必须要用字段1.字段2 : "value" 方式来进行查询。。。

  • 相关阅读:
    php增加自动刷新当前页面
    liunx环境下安装mysql5.7及以上版本
    mysql的主从级联复制的配置
    windowns常用命令
    liunx之使用(mount)挂载技术
    在burpsuite中为什么不能选中设置好的代理?
    c++中向任意目录下写文件
    Hbase——JavaAPI操作笔记
    每周总结(6)(补)
    每周总结(5)
  • 原文地址:https://www.cnblogs.com/zmc60/p/16153217.html
Copyright © 2020-2023  润新知