Mongodb 之 $elemMatch 作用

Mongodb 在当内嵌文档中数据过多时 $elemMatch 进行精确查询。

1. 创建文档添加测试数据

db.test.insert({"content": "...","comments": [{"author": "joe","score": 3,"comment": "nice post"},{"author": "mary","score": 6,"comment": "terrible post"},{"author": "luy","score": 9,"comment": "file post"}]
});

2. 首先使用普通方法进行查询

db.test.find({"comments":{"author":"joe", "score":3, "comment":"nice post"}});

使用这种方式可以查询出数据,但是对于查询条件的顺序和数量都有要求。

3. 将条件顺序进行调整

db.test.find({"comments":{"score":3, "author":"joe", "comment":"nice post"}});

调整顺序后没有查询出任何数据

4. 使用点的方式进行查询·

db.test.find({"comments.author":"joe", "comments.score":9});

可以查询出数据,但是对于·查询结果不够精准,这种方式只要内嵌文档中存在条件中的数据那么就可以查询出相关数据。

如 author为joe 在第一条数据中而 score 为9 则在第三条数据中。

5. 使用 $elemMatch 进行查询

5.1 条件正确的查询

db.test.find({"comments":{"$elemMatch":{"author":"joe", "score":3}}});

查询成功。

5.2. 修改查询条件

db.test.find({"comments":{"$elemMatch":{"author":"joe", "score":5}}});

数据为空。因为在文档中没有author 为 joe 和score 为5 的数据。

使用$elemMatch 可以再内嵌文档中数据过多时进行精确查找,避免数据的不准确。

Mongodb 之 $elemMatch 作用相关推荐

  1. 2021-05-11 MongoDB面试题 分析器在MongoDB中的作用是什么

    分析器在MongoDB中的作用是什么? MongoDB中包括了一个可以显示数据库中每个操作性能特点的数据库分析器.通过这个分析器你可以找到比预期慢的查询(或写操作);利用这一信息,比如,可以确定是否需 ...

  2. MongoDB利用$elemMatch对内嵌文档进行多条件查询

    目录 背景 内嵌文档单条件查询 多条件查询 背景 问题:遇到如下类型的数据,想要查询出所有文档中 满足members中任意一条的name以"Bule"开头且其中的gender为&q ...

  3. mongodb jar包_MongoDB是什么?看完你就知道了!

    Java社区回复[520社区],领取资源500G惊喜 来源:http://suo.im/5e8a94 一.概述 1.MongoDB是什么?用一句话总结 MongoDB是一款为web应用程序和互联网基础 ...

  4. 《MongoDB权威指南》迷你书连载一-入门篇

    MongoDB 非常强大,同时也很容易上手.本章会介绍一些 MongoDB 的基本概念. 文档是 MongoDB 中数据的基本单元,非常类似与关系型数据库中的行(但是比行要复杂得多) 类似地,集可以被 ...

  5. MongoDb数据库面试整理

    MongoDB是目前最好的面向文档的免费开源NoSQL数据库.如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答.这些MongoDB NoS ...

  6. Windows下MongoDB的安装与设置MongoDB服务

    Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB ...

  7. 28个MongoDB经典面试题

    MongoDB是目前最好的面向文档的免费开源NoSQL数据库.如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答.这些MongoDB NoS ...

  8. 关于MongoDB的几个问题

    本文来说下关于MongoDB的几个问题 文章目录 概述 MongoDB是什么 MongoDB有哪些特点 说一说NoSQL数据库的几个优点 NoSQL数据库有哪些类型 MySQL与MongoDB之间最基 ...

  9. 2020年“有史以来”全网最全1309道BAT大厂java面试题,mongodb原理知识

    Java中异常分为哪两种? 异常的处理机制有几种? 如何自定义一个异常 try catch fifinally,try里有return,finally还执行么? Excption与Error包结构 T ...

最新文章

  1. Javascript的FSO功能
  2. APP市场火热的背后 云计算技术不是核心竞争力
  3. 青龙羊毛——新快手极速版(搬运,非原创)
  4. Java多线程编程实战指南
  5. Python的time库的一些简单函数以及用法
  6. python怎么设置代码执行时间_Python 2.x如何设置命令执行的超时时间实例
  7. axios关于针对请求时长策略设计的思考
  8. 计算机用于数据管理经历了,管理系统中计算机应用--期中测验答案
  9. python编程 迷你世界_迷你编程下载-迷你世界迷你编程下载 v1.0官方版--pc6下载站...
  10. linux夸分区软连接的作用,Linux 硬连接和软连接的原理 (in使用)
  11. 2020年对口升学计算机应用模拟题,2020年江西省对口计算机试卷
  12. Django book 2.0
  13. 2022年自考专业(工商企业管理)电子商务概论练习题
  14. 台式计算机有线无线网卡设置,电脑无线网卡如何使用 电脑外置无线网卡详细使用图文教程...
  15. 计算机毕业设计(附源码)python-志愿者管理系统
  16. Node.js+express+MySQL仿美团注册登录绑定第三方登录
  17. 计算机1M代表什么,1M等于多少kb?KB MB GB TB 各是什么意思?
  18. logback使用配置详解
  19. Hikvison对接NVR实现WEB无插件开发包实现前端视频预览(html、vue、nginx代理)
  20. JAVA高级面试总结-基础篇

热门文章

  1. CentOS7配置NTP授时服务器
  2. NVIDIA Tesla® P100 加速训练 OCR 模型
  3. 珠海高新区领导一行莅临道可云参观考察
  4. 抑郁症|我所做的全部努力,不过是为了完成普通的生活
  5. 基础之HashMap理解
  6. rebar3使用relx打包了
  7. 将十进制数转化为十六进制数
  8. 基于python tkinter的简单计算器(v1.0)
  9. 【 数量技术宅 | 期权系列 分享】期权策略的“独孤九剑”
  10. idea设置全局搜索快捷键