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   太白金星有点烦  阅读(42)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-04-16 5.Linux查看物理cpu个数、核数、逻辑cpu个数

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示