Mongo 查询数组中的嵌套字段。

2023-12-25

我有一个具有以下结构的文档:{_id: 'fkwjefioew', genres: [{_id: 'fewkjfewf', 'name': "Shooter"}, {...}, ...]}我需要能够使用 mongo 的 $in 进行查询,以查看文档是否具有传递参数的流派名称。例如,如果我将“Shooter”参数传递给查询,我希望该文档generes 数组中的对象之一包含名称“Shooter”的所有文档。实现这一目标的最简单方法是什么?谢谢!


你会想使用$elemMatch为了这。

{"genres": { "$elemMatch" :  {"name": "Shooter"} } }
// or
{"genres": { "$elemMatch" :  {"name": { "$in": ["Shooter"] } } } }

https://docs.mongodb.com/manual/reference/operator/query/elemMatch/ https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

您还可以使用 mongodb 点表示法,它几乎可以像您一样工作,除了:

{"genres.name": "Shooter"}
// or
{"genres.name": { "$in": ["Shooter"]}}

Mongodb 知道如何解释这个情况genres是一个数组。 请记住,点表示法查询有点不明确,因为它也会匹配name财产,如果genres属性不是数组。例如,此文档将匹配:

{"genres": { "name": "Shooter" } }

在所有情况下,您都可以索引name财产在genres数组和索引将用于查找。

db.collection.createIndex({'genres.name': 1})

https://docs.mongodb.com/manual/reference/glossary/#term-dot-notation https://docs.mongodb.com/manual/reference/glossary/#term-dot-notation

https://docs.mongodb.com/manual/reference/operator/query/in/ https://docs.mongodb.com/manual/reference/operator/query/in/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongo 查询数组中的嵌套字段。 的相关文章

  • 如何获取 bson 文档的大小(以字节为单位)

    bson文档的size 函数返回的int值是字节数吗 无法找到此 API 的详细信息 如何获取 bson 文档的大小 以字节为单位 这是我的代码 import org bson Document MongoDatabase db Mongo
  • Mongoose嵌入式文档更新

    我在嵌入式文档更新方面遇到问题 我定义的架构 var Talk new Schema title type String required true content type String required true date type D
  • 如何在Mongodb java驱动程序中编写多个group by id字段

    在下面的查询中 group id success success responseCode responseCode label label max timeStamp timeStamp 1 count responseCode sum
  • MongoDB自增ID

    MongodB 中自动生成的 ID 的大小为12 Bytes大整数的大小是8 bytes 我在 4 台运行 Ubuntu Server 的机器上有一个 mongodb 集群 但我现在只是在测试 插入只能通过一台服务器 即 Nodejs 服务
  • 为 Meteor 数据创建编号列表

    有没有办法获取 Meteor 集合中项目的编号列表的 编号 我知道我可以在 html 中做到这一点 但我觉得如果我可以在 spacebars 中放置一些东西 那么样式会更容易 如果我可以使用更好的术语 请告诉我 像这样的东西 前 20 部电
  • Mongodb - 为现有集合添加架构

    我的 MongoDB 中有一个包含 1300 万条记录的集合 不幸的是 当我创建这个集合时 没有为其创建模式 我想知道除了备份整个数据库 创建架构并上传所有数据之外 是否有任何方法可以添加 JSON 架构 您可以使用以下方法将 JSON 架
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • Mongoose.js instance.save() 回调未触发

    var mongo require mongoose var connection mongo createConnection mongodb 127 0 0 1 test connection on error function err
  • spring-data-mongodb 在重新水化对象时到底如何处理构造函数?

    我读过了http static springsource org spring data data mongo docs 1 1 0 RELEASE reference html mapping chapter http static sp
  • MongoDB 过滤嵌套对象中的数组元素

    我有一个文件如下 id ObjectId 56423b2558cb340599108b35 test source member abc member xyz 我想过滤数组元素 xyz 并且我正在尝试以下查询 db coll find te
  • 使用 C# 将 XML 转换为 BSON

    我想将 XML 文件转换为 BSON 然后将 BSON 导入 MongoDB 我进行了搜索 但找不到如何使用 C 来隐藏它 请向我提供使用 C 执行此操作的源代码 今天有同样的问题 这肯定不是最好的解决方案 但是 我在我的项目中以这种方式解
  • 如何更新 Laravel 编辑视图中的图像?

    在 Laravel 中 我的编辑视图中有一个名为 个人资料图片 的字段 每当我单击 编辑 按钮时 我都会在编辑视图中从数据库中获取所有值 但没有获得图像 并且如果每当我每次单击 提交 按钮时 我都必须如果没有上传图像 我无法进一步处理我想要
  • 匹配包含 MongoDB 中提供的数组的任意组合的数组字段

    我想使用指定的数组元素列表进行查询 以便返回的文档只能包含我传递的元素 但不需要包含所有元素 鉴于以下文件 name Article 1 tags Funny Rad name Article 2 tags Cool Rad name Ar
  • 是否有一个好的开源 MongoDB 队列 C# 驱动程序实现

    并不是说编写一个程序不够容易 或有趣 可以说 不重新发明轮子是有道理的 我已经浏览了各种尝试 但我似乎还没有遇到支持这些标准的实现 具有MongoDB持久化的简单队列OSS系统 基于 C 驱动程序 官方 如此完整的 POCO 序列化 可尾游
  • UnhandledPromiseRejectionWarning: MongoError: w 必须是连接处的数字或字符串

    任何人都知道为什么我会收到此错误 UnhandledPromiseRejectionWarning MongoError w 必须是连接处的数字或字符串 我在运行下面的代码时遇到此错误 它的目的是检查用户是否在 mongodb 数据库中 如
  • 在这种情况下如何填充 Mongoose?

    const userSchema new mongoose Schema email type String unique true password String notifications notifiId type Schema Ty
  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • 是否可以从 MongoDB 查询返回计算字段?

    在 SQL 中我可以做类似的事情 SELECT myNum myNum 1 as increment FROM myTable 有效地执行任意数学和其他函数 并将它们作为结果中的字段返回 MongoDB 也可以做同样的事情吗 db test
  • pymongo MongoClient 连接到 ReplicaSet

    我采用 pymongo 的 MongoClient 类来连接到具有三个节点 1 个主节点 2 个辅助节点 的副本集 代码片段如下 c MongoClient secondary1 hostname secondary2 hostname r
  • 嵌套文档上的 MongoDB $lookup

    我是 mongo 的新手 正在努力应对以下问题 我有 2 个集合 结构如下 对于我的一生 我不知道如何对学校收藏进行 lookup 阅读其他帖子 我肯定使用 ObjectId 作为参考以及外部字段 下面是我的结构 Alumni id joh

随机推荐

  • 如何获取处于“准备”状态的 docker 服务任务的日志

    我现在正在使用 docker 1 12 创建了一个服务 并注意到有一个阶段 preparing 当我跑的时候 docker service tasks xxx 我只能猜测在这个阶段图像正在被拉取或更新 我的问题是 如何查看此阶段的日志 或者
  • Sails.io.js io.socket.get('/user',...) 尚未在核心中实现

    创建例如assets js dependencies app io js with io socket on connect function socketConnected console debug This is from the c
  • php中session.use_cookies的使用

    我已经四处搜索以查找如果更改值对 php 会话的影响session use cookies to true or false但似乎对其工作方式没有影响 有什么用session use cookies在 php 中以及为什么需要它 这就是您希
  • ASP.NET MVC Remote属性方法参数总是传递null

    我有这个AdvertiserNameAvailable远程验证属性正在使用的方法 问题是AdvertiserNameAvailable正在调用而不将输入值传递给方法Name范围 当我进入该方法的调试时 我看到Name参数总是null pub
  • 如何在 GitHub Actions 中缓存 dotnet 安装

    我的 CI 管道中有两个步骤 一是缓存dotnet的安装路径 二是dotnet安装 并使用 windows 2019 图像 但系统永远不会识别 net 7可用 它始终安装 net 6 0 缓存还显示缓存了 200MB 但可能某些 PATH
  • 如何处理 iPhone 中 uitableviewcell 上每个按钮的切换按钮

    我的代码运行良好 但仅适用于单个单元格 当我定义 5 行时 它仅适用于最后一个单元格 如果我点击 1 个单元格 则值displayimage仅在最后一个单元格上 它不显示我单击的位置以及我单击的单元格如何处理每个单元格的toogle按钮更改
  • 为什么我要使用 Enumerable.ElementAt() 而不是 [] 运算符?

    这似乎是一个愚蠢的问题 但我还没有找到答案 所以就在这里 在这两种情况下 如果您未能检查集合的边界 您将收到 超出范围 异常 这只是编码风格偏好吗 如果有人需要一个例子 List
  • 制作平台游戏,需要方法停止运行

    我正在用 Flash 制作一个平台游戏 我有一个目标类 该类包含目标精灵的代码 当你击中它时 它会继续游戏的下一部分 在目标构造函数内部 添加了2个事件监听器 它们如下 addEventListener Event ADDED beginC
  • 如何在Boost Spirit中设置最大递归

    使用 boost spirit 如果我有递归规则来解析括号 rule
  • Java - 等待和notifyAll

    当你对一个没有等待的对象调用notifyAll方法时会发生什么 应该有例外还是正常情况 正如您在这里所看到的 对未等待的对象调用notifyAll 不会产生任何效果
  • 如何在 Symfony2 数据库查询中使用 MATCH

    我正在为我的 Symfony2 项目构建一个搜索功能 并为其编写了 SQL 如下所示 SELECT dlc title dlc description dlc keywords FROM ShoutMainBundle Dlc dlc WH
  • 测量外部 CDN 资源的访问者 HTTP 缓存命中率

    我的网站使用几种常见的 CDN 托管资源 例如bootstrap css jquery js and fontawesome css 是否可以通过 JavaScript 获取信息 我的网站访问者在其 Web 浏览器中是否有这些资源的热缓存
  • 以编程方式更改本地安全策略

    我想在 C 中更改本地安全策略 交互式登录 不需要 ctrl alt del 我怎样才能做到这一点 我找到了我必须在注册表中更改的答案 Windows 注册表编辑器版本 5 00 HKEY LOCAL MACHINE SOFTWARE Mi
  • Git 子模块工作流程问题

    最近 我们的 Git 存储库遇到了很多问题 我们是应用程序之间总共 4 个共享存储库的 git 子模块的用户 例如 存储库 网站 共有 3 个子模块 submodule vendor api path vendor api url emai
  • ionChange - 仅检测 Ionic 2 中从视图到模型的变化

    我有一个 Ionic 2 应用程序 允许安排通知 提醒功能 嗯 要求是 当用户进入提醒页面时 应该检查是否有 已保存提醒 如果有已保存的提醒 我目前正在保存此信息 存储 时钟应显示并保存提醒时间 切换开关处于活动状态 否则 时钟应显示当前时
  • 如何消除 WinForms 滚动动画中的抖动现象?

    我正在用 C 编写一个简单的控件 其工作方式类似于图片框 只不过图像不断向上滚动 并从底部重新出现 动画效果由计时器 System Threading Timer 驱动 该计时器从缓存的图像 分两部分 复制到隐藏缓冲区 然后在其 Paint
  • Gradle:“无法缓存配置缓存状态”

    Configuration cache state could not be cached field actions from type org gradle api DefaultTask error writing value of
  • Java 中的 IEqualityComparer 接口

    更具体地说 我想要一个接口来比较只能比较相等性的对象 例如复数 但没有全序 它应该有 注意它只返回一个布尔值是 否 boolean Equals T object1 T object2 和一个哈希码函数 这样 当我使用对象 例如收集 相等
  • 如何使用 Unix 或 Windows 风格的换行符 [重复]

    这个问题在这里已经有答案了 我正在阅读stdin有时有 UNIX 风格的换行符 有时是 Windows 风格的换行符 如何使用任一类型的换行符 假设您知道会有换行符 解决方案是消耗一个字符 然后决定 10 LF Unix style new
  • Mongo 查询数组中的嵌套字段。

    我有一个具有以下结构的文档 id fkwjefioew genres id fewkjfewf name Shooter 我需要能够使用 mongo 的 in 进行查询 以查看文档是否具有传递参数的流派名称 例如 如果我将 Shooter