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

唐山建设工程安全监督网站vi设计公司

唐山建设工程安全监督网站,vi设计公司,建立一个小型网站多少钱,注册公司资金最少多少钱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.hkea.cn/news/816713/

相关文章:

  • 苏州网站建设网站seo优化的方法
  • 设计网装修seo顾问服
  • 网站ip拦截免费网站搭建平台
  • 深圳企业网站建设公司快速申请免费个人网站
  • 唯品会 一家专门做特卖的网站沈阳seo按天计费
  • 聊城手机网站建设郑州seo服务技术
  • 个人定做衣服店江门seo推广公司
  • 网站开发与网站建设山东济南seo整站优化费用
  • 香港疫情最新消息今天深圳seo教程
  • 维护一个网站难吗免费发布外链
  • 南安市网站建设成都今天重大新闻事件
  • 网站后台补丁如何做软文有哪几种类型
  • 网站建设的费用包括哪些内容资讯门户类网站有哪些
  • 一站式服务图片制作网页的基本步骤
  • 个人网站建设网站网络网站推广
  • asp做的药店网站模板北京百度快照推广公司
  • 网站建设泉州效率网络seo的优化策略有哪些
  • 页网站无锡网站制作推广
  • 一流的龙岗网站建设目前最靠谱的推广平台
  • 企业营销型网站费用短视频推广引流
  • 化妆品可做的团购网站有哪些seo研究中心南宁线下
  • 网站空间域名是什么做电商必备的几个软件
  • 软件公司运营是做什么的seo公司运营
  • 专业云南做网站福州短视频seo服务
  • 网站开发技术期中试题电商培训机构排名
  • 网站设计连接数据库怎么做如何进行百度推广
  • 日本网站图片做淘宝代购网络营销促销方案
  • 网站开发导航栏网站制作的费用
  • 盐城网站设计网站流量统计工具
  • 网站上如何做相关推荐郑州建网站的公司