位置: 编程技术 - 正文

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安装教程图解)

  • 银行手续费回单可以作为入账依据吗
  • 价税合计金额怎么算出税额
  • 房屋契税怎么交在手机上操作
  • 怎么计提固定资产折旧科目
  • 电子商业汇票怎么兑现
  • 报表申报错误怎么作废重报
  • 发票章没盖在盖章处
  • 收到快递费属于什么科目
  • 原始凭证包括会计档案吗
  • 个人承包业务是否合法
  • 营改增计算举例
  • 收到增值税普通发票
  • 企业付装修费怎么入账
  • 期初数录错了怎么改
  • 固定基金怎么算
  • 从银行取现回单怎么取
  • 地税注销流程
  • 外贸企业购进货物出口后,应退消费税应当贷记
  • 客户方流水号是什么
  • 企业所得税清算报备是什么意思
  • 石油天然气用途
  • 1697510703
  • 苹果mac dns设置
  • 苹果手机移动到新手机
  • 财务预算业务制度有哪些
  • 支付设备维修费用计入什么科目
  • 公司增资扩股需要考略公司资产吗
  • 浅谈linux
  • 应收款减少怎么做账
  • 固定资产非正常损失进项税
  • 武侯祠红墙在哪个门
  • laslajas大教堂
  • 间接人工费用预算工时分配率将提高10%
  • axios.interceptors.request.use简介
  • php加密后的代码能运行吗?
  • 大学生网页设计大赛
  • vue中使用jsx语法
  • 蓝桥杯b组2020
  • php封装函数
  • 职工教育经费能结转几年
  • file读取文件内容
  • 中国传统节日大概有多少
  • 利润表用处
  • 民办非企业培训机构注册流程
  • 电梯安装行业分类
  • 高新技术企业研发费用加计扣除
  • python中map和filter有啥区别
  • 事业单位财政拨款收入会计分录
  • 小规模纳税人不超过30万怎么做账
  • sql server恢复
  • 企业给员工报销的个人消费支出如何计税
  • 开具房租发票的分录如何做?
  • 银行电子承兑到期了怎么兑现操作
  • 人力资源行业企业成长
  • 免交的增值税要交所得税吗
  • 机构信用代码证在哪里办理
  • 抵扣联过期时间
  • 存在弃置费用的固定资产有哪些
  • 报销差旅费如何做记账凭证
  • 建筑业异地预交税款最新规定
  • 债券溢价摊销有什么影响
  • 发票必须与合同明细对应吗
  • 企业职工薪酬如何确定
  • mysql写错了怎么结束
  • UNIX系统中文件的索引表结构
  • 生产环境如何对linux进行合理分区
  • 重装系统清空
  • ubuntu中装虚拟机
  • centos 7 安装
  • 微软商店更新错误
  • windows7使用
  • vue全家桶包含哪些
  • js中的onchange
  • bootstrap基础
  • typescript的type
  • unity3d碰撞检测源码
  • js实现@功能
  • python常用操作运算符
  • 深入理解新发展理念
  • 广西地方税务局2018年1号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设