mongodb - 如何使用聚合构建复杂的过滤器查询。蒙古数据库
问题描述
我有一个“评估”集合,每个评估都具有以下结构:
我有一个标签列表来过滤这个样本结构:
[{ LabelId="5fe34b13f0031e1078e08b5c", Value="BOL"},
{ LabelId="5fe34b13f0031e1078e08b5c", Value="LGV"}]
我想要做的是过滤“评估”集合以仅获取具有评估结果的评估,这些评估具有与上面列表中对象过滤器的相同 LabelId 和值匹配的 EvaluatedLabels。
换句话说,我需要评估给定标签/值组合的评估。
我将如何使用聚合框架使用 mongodb 查询语言来做到这一点?
解决方案
您可以在两个字段上创建复合索引,如下所示:
db.evaluations.createIndex({ "EvaluationResults.EvaluationLabels.LabelId":1, "EvaluationResults.EvaluationLabels.Value":1 })
并过滤具体评估如下:
db.evaluations.find({ "EvaluationResults.EvaluationLabels.LabelId":"5fe", "EvaluationResults.EvaluationLabels.Value":"BOL" })
推荐阅读
- powershell - Powershell - 使用 CYGWIN 运行 SCP 命令,但也扩展变量
- mysql - Laravel 文件缓存与 MySQL 主键搜索
- python - 在 PyTorch 中创建数据加载器类时遇到问题
- ios - 为 SwiftUI Path 元素添加阴影
- excel - excel中的子字符串使用公式
- c++ - 查找二叉搜索树是否有重复值
- c# - M2mqtt 使用字符串变量订阅主题
- c++ - Pybind11 内存似乎在调用之间发生了变化
- jena - Jena tdbloader 性能和限制
- mysql - 在单个查询中使用多个 COUNT 子句的正确方法是什么?