位置: 编程技术 - 正文

MongoDB如何对数组中的元素进行查询详解(mongodb aggregate count)

编辑:rootadmin

推荐整理分享MongoDB如何对数组中的元素进行查询详解(mongodb aggregate count),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb 一对多,mongodb aggregate count,mongodb aggregate count,mongodb key value,mongodb 一对多,mongodb aggregate count,mongodb 一对多,mongodb 对象,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

MongoDB是文档型数据库,每个文档(doc)表示数据的一项记录。相比关系型DB的row只能使用简单的数据类型,doc能够使用复杂的数据类型:内嵌doc,数组。MongoDB的数组是一系列元素的集合,使用中括号 [] 表示数组,例如:[1,2,3]的元素是整数值,[{name:"t5"}, {name:"t7"}],[ {name:"t5", age:}, {name:"t7", age:} ]的元素是doc。

在MongoDB中,数组元素允许重复,元素的位置是固定的。如果两个数组相等,那么这两个数组的元素和及其位置都相同。

MongoDB中根据数组子元素进行匹配,有两种方式。

使用 “[数组名].[子元素字段名]” 的方式进行匹配。 使用 “[数组名]” $elemMatch { [子元素字段名] }的方式。

不同点在于所匹配的主体不同。

“[数组名].[子元素字段名]” 的方式匹配的主体为 “[数组名]”, 适用于单个条件,如果是多个条件, 则变成数组子元素之间的“或”运算。

请看示例:

假设某个集合内有2条数据:

document1 如下:

document2 如下:

MongoDB如何对数组中的元素进行查询详解(mongodb aggregate count)

找出数组中, 具有 qid=1并且reorderFlag=0的记录

查询数组内同一条记录同时满足2个条件的语句:

查询结果是:

可以看到, 其执行结果是, 对数组内的每一个子元素, 执行 $elemMatch 匹配, 可以进行多个条件的匹配。

找出数组中, qid=1 或者 reorderFlag=0的记录

数组整体能满足以下2个条件:

执行的主体是 qList, 要求: 有某些子元素满足 qid=1, 也要有某些子元素满足 reorderFlag=0`。

查询结果是:

可以看到, 其执行结果是, 对数组进行匹配, 其中需要有子元素 满足 "qList.qid": 1, 还需要有子元素 满足 "qList.qid": 1, , 适合进行单个条件的匹配。

如果是单个条件匹配, 则以下方式结果是一样的。

或者

查询的结果都是2条记录。

总结

标签: mongodb aggregate count

本文链接地址:https://www.jiuchutong.com/biancheng/312082.html 转载请保留说明!

上一篇:Mysql触发器在PHP项目中用来做信息备份、恢复和清空(mysql触发器在哪里建)

下一篇:Mac中mongoDB的安装与卸载步骤详解(mongodb安装教程图解)

  • 采购暂估的处理方式
  • 防伪税控风险纳税人财务负责人和法人同一人
  • 无法支付的应付账款需要交增值税吗
  • 小规模纳税人分红税率
  • 业务招待费报销要求
  • 发票采集即征即退怎么填
  • 批发商税率
  • 实收资本印花税税率多少
  • 以银行存款退还投资者股金
  • 耕地占用税如何做账
  • 给客户办理分期
  • 土地增值税预缴税率
  • 公积金账户收入
  • 营改增后出售以前年度的固定资产怎么申报?
  • 普通发票和专用发票的税点一样吗
  • 外籍人员劳务费税率表
  • 电商一般纳税人如何报税
  • 混合销售和兼营的区别
  • 增值税是售价乘以税率吗
  • 税率16降到13什么时候实施
  • 年报弥补以前年度亏损了还需要填107040表吗
  • 哪些科目适用于借方多栏式
  • mac文件怎么用
  • 其他应收款贷方重分类到哪个科目
  • win7系统里没有无线网络连接
  • 结算备付金的账户是什么
  • 外贸公司付款方式有几种
  • 前端 vue
  • 企业的税收优惠政策有哪些
  • 项目优化管理工具
  • php 读取文本文件
  • 从事广告代理业工作
  • yolov8目标检测测试输出类别个数
  • uniapp image mode
  • 企业所得税税前扣除和不扣除的区别
  • php获取北京时间
  • php数据库编程
  • 2022年电子设计大赛F题
  • qt+opencv教程
  • opencv图像处理入门与实践pdf
  • window11预览版怎么样
  • php搜索代码
  • 预缴增值税需要预缴城建税吗
  • 附清单格式
  • 公司年底封账时间
  • 逐步结转分步法和平行结转分步法
  • 现金收款凭证是发票吗
  • 商业承兑贴现几个点
  • access2016备注型
  • 采购成本和销售成本谁影响利润
  • 计提折旧的固定资产平均总值怎么算
  • 建筑工程的税务处理
  • 冲回上月暂估入账的商品会计分录
  • 职工福利费的计提比例为职工工资总额扣除奖金后的
  • 班车租赁费计入福利费吗
  • 小企业应该如何发展
  • 现金收款凭证的填制日期应当是
  • mysql newid()
  • sql2008数据库mdf文件 恢复
  • win8任务管理器在哪
  • 在linux操作系统中,/etc/rc.d/init.d
  • centos如何挂载fc存储
  • 怎么给网络设置防火墙
  • win10桌面添加画图图标
  • linux 应用程序
  • 安装win7系统后无法引导启动
  • ubuntu操作
  • windows桌面卡
  • js跨域8种解决方案
  • Android---61---TabHost简单使用
  • android环境搭建教程
  • js类继承的几种方式
  • js遮罩效果
  • android binary xml
  • jquery遍历li
  • 安徽监狱待遇qzzn
  • 棚改房办房产证用不用交费
  • 所得税 营业税计算公式
  • 无房怎么办
  • 江苏省人大有信访工作吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设