【发布时间】:2020-01-24 22:36:29
【问题描述】:
我在 Mongo 中遇到了一个问题,我没有任何线索可以有效地解决它。
假设我有一个类似这样的“课程”集合(索引是在“studentIds”字段上创建的):
{
"courseId": 1,
"name": "Mathematics",
"studentIds": [1,3,5]
...
...
}
{
"courseId": 2,
"name": "Physics",
"studentIds": [2,3,5]
...
...
}
我正在尝试编写一个查询,该查询将返回以下格式的记录:
假设学生 1 正在查询课程,他注册了 courseId 1,因此“已注册”为 true,但学生 1 未注册 courseId 2,因此“已注册”为 false:
{
"courseId": 1,
"name": "Mathematics",
"enrolled": true
}
{
"courseId": 2,
"name": "Physics",
"enrolled": false
}
我能想到的唯一解决方案是有两个查询,第一个查询以查找学生注册的所有课程 ID,并在第二个查询中通过课程上的光标运行时,根据存在的情况添加“已注册”字段courseId 在第一个查询的结果中,但正在寻找一种在单个查询中实现此目的的方法。
谢谢。
【问题讨论】:
标签: mongodb mongodb-query