当前位置: 首页 > news >正文

给企业做网站培训课

给企业做网站,培训课,广西网络公司网站建设,成都景观设计公司排名MongoDB 内嵌文档数组查询 文章目录 MongoDB 内嵌文档数组查询查询数组内嵌文档为文档数组中的字段指定查询条件指定文档数组内嵌文档字段的查询条件使用数组索引查询内嵌文档的字段 为文档数组指定多个条件单个内嵌文档满足内嵌字段的多个查询条件符合标准的元素组合 使用 Mon…

MongoDB 内嵌文档数组查询

文章目录

  • MongoDB 内嵌文档数组查询
    • 查询数组内嵌文档
    • 为文档数组中的字段指定查询条件
      • 指定文档数组内嵌文档字段的查询条件
      • 使用数组索引查询内嵌文档的字段
    • 为文档数组指定多个条件
      • 单个内嵌文档满足内嵌字段的多个查询条件
      • 符合标准的元素组合
    • 使用 MongoDB Atlas 查询文档数组

可以使用下面几种方法查询MongoDB中的嵌入文档:

  • 编程语言的驱动程序,比如:Java、Python灯。
  • MongoDB Atlas UI。
  • MongoDB Compass。
  • 其他第三方工具。

下面的示例使用mongosh的db.collection.find()方法对内嵌/嵌套文档进行查询,如果使用其他编程语言或驱动,写法会有不同。

首先,使用下面的语句创建inventory数据集:

db.inventory.insertMany( [{ item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },{ item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },{ item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },{ item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

查询数组内嵌文档

下面的示例查询instock数组中元素与指定文档匹配的文档:

db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )

整个内嵌文档的等价匹配要求与指定文档完全匹配,包括字段顺序。例如,下面的查询与集合中所有文档都不匹配:

db.inventory.find( { "instock": { qty: 5, warehouse: "A" } } )

为文档数组中的字段指定查询条件

指定文档数组内嵌文档字段的查询条件

如果不知道数组中内嵌文档的索引位置,可将数组字段名称与点(.)和内嵌文档中的字段名称连接起来。

下面的示例查询instock数组中至少有一个内嵌文档包含qty字段(其值小于或等于20)的文档:

db.inventory.find( { 'instock.qty': { $lte: 20 } } )

使用数组索引查询内嵌文档的字段

可以使用点号表示法,指定文档中数组指定索引位置的字段的查询条件,数组的索引从零开始,使用点表示法查询时,字段和索引必须位于引号内。

db.inventory.find( { 'instock.0.qty': { $lte: 20 } } )

为文档数组指定多个条件

对内嵌文档数组的多个字段指定条件时,可以指定单个、多个或全部文档满足条件。

单个内嵌文档满足内嵌字段的多个查询条件

使用$elemMatch操作符可以在内嵌文档数组上指定多个条件,这样至少有一个内嵌文档满足条件。

下面的例子查询instock数组中至少有一个内嵌文档同时包含qty字段等于5warehouse字段等于A的文档:

db.inventory.find( { "instock": { $elemMatch: { qty: 5, warehouse: "A" } } } )

下面的列子查询instock数组中至少有一个内嵌文档包含qty大于10且小于或等于20的文档:

db.inventory.find( { "instock": { $elemMatch: { qty: { $gt: 10, $lte: 20 } } } } )

符合标准的元素组合

如果数组字段上的复合查询条件不使用 $elemMatch 运算符,则查询将选择其数组包含满足条件的任意元素组合的文档。
例如,以下查询匹配 instock 数组中嵌套的任何文档的 qty 字段大于 10 且数组中的任何文档(但不一定是相同的嵌入文档)的 qty 字段小于或等于 20 的文档:

db.inventory.find( { "instock.qty": { $gt: 10,  $lte: 20 } } )

以下示例查询 instock 数组中至少有一个包含等于 5 的字段 qty 的嵌入文档和至少一个包含等于 A 的字段仓库的嵌入文档(但不一定是相同的嵌入文档)的文档:

db.inventory.find( { "instock.qty": 5, "instock.warehouse": "A" } )

使用 MongoDB Atlas 查询文档数组

http://www.dt0577.cn/news/44620.html

相关文章:

  • 温州专业手机网站制作哪家好百度移动开放平台
  • 网站建设技术包括长沙seo网站排名优化公司
  • 百度app下载整站seo排名费用价格
  • 厦门网站设计推广公司上海网络营销公司
  • 网站策划搭建方案今天微博热搜前十名
  • 微信网站测试温州seo推广外包
  • 应届生在淮北招的网站建设类型岗位2022百度seo优化工具
  • 学生网站作品河南网站建设优化技术
  • 衡阳企业网站排名优化seo网络推广课程
  • 游戏设计师网站b站免费版入口
  • 无锡网站建设推广关键词优化外包
  • 阜阳网站建设阜阳网站怎样优化关键词好
  • 亦庄公司做网站天堂网
  • wordpress管理页面地址网站seo方案策划书
  • 荔湾网站制作公司新闻报道最新消息今天
  • 网站建站分辨率seo搜索引擎优化师
  • 做独立网站的启发怎么自己建立一个网站
  • 琴行网站建设方案关键词大全
  • 展示型网站设计案例最新热搜新闻
  • 怎么把dw做的网站传上去b2b平台有哪几个
  • 自己做壁纸的网站最新的疫情防控政策和管理措施
  • 织梦网站打开速度慢新闻摘抄大全
  • 做网站中的镜像是什么淘宝推广方法有哪些
  • 网站空间购买流程优化网站推广教程排名
  • 音乐中文网站模板下载南京seo推广公司
  • 客服在家做网站国家最新新闻
  • 学院网站策划书怎样做好服务营销
  • 成立一个做网站的公司网络平台推广运营有哪些平台
  • 2015做导航网站爱营销电信版下载app最新版
  • 济南网站建设方案咨询最火的网络推广平台