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" 方式来进行查询。。。

 

posted on 2022-04-16 16:15  太白金星有点烦  阅读(80)  评论(0)    收藏  举报

导航