mongodb - 检查数组类型的字段是否包含数组
问题描述
我使用猫鼬,我有以下user
收集数据:
[{
"_id": "1",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
},
{
"value": "A70",
"text": "art"
}
]
},
{
"_id": "2",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
}
]
},
{
"_id": "3",
"notes": [
{
"value": "A80",
"text": "art"
}
]
}]
我将以下数组作为参数:[ "A90", "A80" ]
所以我想进行查询以使用此数组仅返回在 notes(值)表中具有所有数组项的记录。
因此,对于上面的示例,它将返回:
[{
"_id": "1",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
},
{
"value": "A70",
"text": "art"
}
]
},
{
"_id": "2",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
}
]
}]
我尝试了以下查找查询:
{ "notes": { $elemMatch: { value: { $in: valuesArray } } }}
但即使 valuesArray 中只有一个元素存在,它也会返回一条记录。
解决方案
结果很容易:
find({ "notes.value": { $all: arrayValues } })
推荐阅读
- google-sheets - 在“SUMIF”中沿总和范围广播的标准范围
- javascript - 以下 Ramda/函数编程模式是否遵循约定/最佳实践?
- python - Django:列出和显示数据库中的数据
- ruby-on-rails - 未定义的方法“评论”#
- kubernetes - 如何找出我应该将“scc”添加到哪个“用户”?
- ruby - 如何在 ruby datamapper 中设置一个属性,该属性是同一对象的另一个属性的函数?
- sql - 根据请求(未加载)触发行源(传递)查询
- python-3.x - Flask SQLAlchemy:像二进制方法
- javascript - 如何使用javascript从动态创建的html元素中获取输入数据
- wordpress - 如何从 Discord 的预览中删除作者标签?