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

TDMoneybanks

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

威廉·德·海斯勒(Willem D'Haeseleer)

您可能想为此使用$elemMatch

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

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

您还可以使用mongodb点表示法,它的工作原理与您差不多,除了:

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

如果genres是数组,Mongodb知道如何解释请记住,点符号查询有些含糊,因为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/operator/query/in/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

查询嵌套Mongo数组

来自分类Dev

如何在mongo shell查询中仅投影嵌套数组的匹配字段

来自分类Dev

Mongo查询-过滤嵌套数组并返回不包含特定字段的文档

来自分类Dev

省略数组mongo查询中的某些字段

来自分类Dev

数组内的 Mongo 查询 array.length

来自分类Dev

节点-Mongo DB-如何查询特定的嵌套字段

来自分类Dev

如何查询包含嵌套数组子集的mongo文档

来自分类Dev

Mongo嵌套键查询

来自分类Dev

将字段与数组的任何元素匹配的Mongo查询

来自分类Dev

查询嵌套文档数组以获取最大字段值

来自分类Dev

查询JSON []字段数组类型内的数组元素

来自分类Dev

Mongo查找对象内最长数组的查询

来自分类Dev

将数组值与嵌套while循环内的输入字段匹配

来自分类Dev

使用 $and, $or 查询 Mongo 数组

来自分类Dev

查询嵌套对象数组

来自分类Dev

查询嵌套对象数组

来自分类Dev

对 mongo 子字段的聚合查询

来自分类Dev

Mongo使用$ set添加新字段来复制嵌套数组对象的值

来自分类Dev

从mongo数组删除嵌套文档

来自分类Dev

Mongo 搜索嵌套文档数组

来自分类Dev

数组字段的Mongoid查询

来自分类Dev

传递嵌套文档查询字段

来自分类Dev

从角度更新mongo数组字段

来自分类Dev

Mongo DB-如何根据字段数组中最旧的日期查询ID

来自分类Dev

在Mongo Aggregate $ lookup查询中使用数组第一字段来匹配文档

来自分类Dev

Mongo,使用数组查询集合

来自分类Dev

在mongo db中选择嵌套字段

来自分类Dev

基于嵌套数组字段的最后一个元素的Spring数据MongoDb查询