MongoDB数组子查询elemMatch

MongoDB数组子查询elemMatch详解

语法

db_name.collection_name.find({field:{$elemMatch:{subfield1:val1, subfield2:val2}}});

参数

参数

描述

db_name

数据库名

collection_name

集合名

filed

要查询的字段

subfield1

要查询的子字段

val1

子字段等于的值

subfield2

要查询的子字段

val2

子字段等于的值

说明

查询结构体字段的 field 字段的子字段 subfield1 值为 val1 并且 subfield2 值为 val2 的数据。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用

db.haicoder.insertMany([{"url":"haicoder.net", "courses":[{"name":"cpp", "age":100}, {"name":"stl", "age":101}]},

{"url":"m.haicoder.net", "courses":[{"name":"java", "age":90}, {"name":"golang", "age":101}]}])

执行完毕后,此时,如下图所示:

我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 对数组进行查询,查询 name 为 cpp 并且 age 为 100 的记录,具体命令如下:

db.haicoder.find({"courses":{$elemMatch:{"name":"cpp", "age":100}}}, {_id:0})

执行完毕后,此时,如下图所示:

我们看到,此时我们匹配了数组的 name 字段和 age 字段都匹配的记录。

MongoDB数组子查询elemMatch总结

在 MongoDB 中,elemMatch 用于查询数组类型的字段的子字段同时必须满足条件,并且在同一条记录中。

php mongodb 子查询,MongoDB数组子查询elemMatch相关推荐

  1. MongoDB 数组类型查询 —— $elemMatch 操作符

    描述 $elemMatch 数组查询操作用于查询数组值中至少有一个能完全匹配所有的查询条件的文档.语法格式如下: { <field>: { $elemMatch: { <query1 ...

  2. MongoDB 教程五: MongoDB固定集合和性能优化 (索引Indexes, 优化器, 慢查询profile)

    mongodb索引详解(Indexes) 索引介绍 索引在mongodb中被支持,如果没有索引,mongodb必须扫描每一个文档集合选择匹配的查询记录.这样扫描集合效率并不高,因为它需要mongod进 ...

  3. pymongo查询列表元素_使用PyMongo查询MongoDB数据库!

    作者|LAKSHAY ARORA 编译|Flin 来源|analyticsvidhya 介绍 随着互联网的普及,我们现在正以前所未有的速度生成数据.因为执行任何类型的分析都需要我们从数据库中收集/查询 ...

  4. mongo go 查询指定字段_使用PyMongo查询MongoDB数据库!

    总览 我们将讨论如何使用PyMongo库查询MongoDB数据库. 我们将介绍MongoDB中的基本聚合操作. 介绍 随着互联网的全球普及,我们现在正在以前所未有的速度生成数据.因为执行任何类型的分析 ...

  5. MongoDB 教程二: 添加, 删除,查询 shell命令

    视频:MongoDB 教程二: 添加, 删除,查询 shell命令 MongoDB Shell 常用操作命令 MonoDB   shell命令操作语法和JavaScript很类似,其实控制台底层的查询 ...

  6. MongoDB(Golang)常用复合查询

    MongoDB(Golang)查询&修改 https://www.jianshu.com/p/b63e5cfa4ce5 >> 资源下载: https://72k.us/file/1 ...

  7. mongodb java 多条件查询_MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)...

    MongoDB查询之高级操作 语法介绍 MongoDB查询文档使用find()方法,同时find()方法以非结构化的方式来显示所有查询到的文档. -- 1.基本语法 db.collection.fin ...

  8. SQL外键约束多表查询级联删除子查询

    文章目录 一.外键 1.创建外键约束 2.删除外键约束 3.外键约束提示 二.级联删除 三.多表查询 1.笛卡尔积 2.内连接查询 1.隐式内连接 2.显示内连接 3.外连接查询 1.左外连接 2.右 ...

  9. ylb:子查询(嵌套子查询)和子查询(相关子查询)

    ylbtech-SQL Server:SQL Server-子查询(嵌套子查询)和子查询(相关子查询) SQL Server 子查询(嵌套子查询)和子查询(相关子查询). 1,ylb:1,子查询(嵌套 ...

最新文章

  1. oracle创建表空间.创建用户.创建表
  2. Android在 普通类(非Activity,多数为Adapter) 中 传输数据为空值 解决方法 :在startActivity 用 intent传输数据
  3. Vue于React特性对比(三)
  4. scp跨主机拷贝工具
  5. 导致集群重启_园区网核心交换机S7706异常重启导致无线网络故障
  6. 计算机维修和维护实训报告,计算机维护与维修实训报告书.docx
  7. UVA 12300 Smallest Regular Polygon(正多边形)
  8. linux 替换文件夹内容,Linux批量替换文本,文件夹内所有文本内容
  9. 荷兰国旗问题+快速排序
  10. 光环PMP 疑难点辨析
  11. 基于智能手机的物流管理系统
  12. 阿里巴巴2021年java研发工程师暑期实习一面及二面面经
  13. UnboundLocalError local variable torch referenced before assignment
  14. MikTex+texworks插入数学公式示例
  15. 当我知道这些网址以后,我后悔以前没有好好学
  16. 基于SVM的数据分类预测——意大利葡萄酒种类识别
  17. 【连载】从单片机到操作系统⑥——FreeRTOS任务切换机制详解
  18. Wi-Fi安全与攻击案例分析
  19. 进口配额管理和出口配额管理_实行配额许可证管理的进出口商品及其申领方法...
  20. Matlab中Robotics toolbox的安装及使用

热门文章

  1. 京东JDHBase异地多活实践
  2. leetcode 477. Total Hamming Distance | 477. 汉明距离总和
  3. Libra教程之:数据结构和存储
  4. 洛谷——P1051 谁拿了最多奖学金
  5. 【通俗易懂】什么是状态机?
  6. 【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞
  7. 【可运行,刘汝佳代码】Trees on the level UVA - 122
  8. 小白也能看懂——使用dev-c++建立工程(多个文件一同编译连接)并运行
  9. Web前端开发笔记——第三章 CSS语言 第一节 CSS的基本概念和样式表
  10. c语言 输入若干字符串 用指针和一位数组 冒泡排序,C 语言作业 - 1 - 指针使用与冒泡排序...