У меня есть проблема в понедельник go, из-за которой я не получаю никаких подсказок для ее эффективного решения.
Скажем, у меня есть коллекция 'Course' примерно такая (индекс создается для 'studentIds 'field):
{
"courseId": 1,
"name": "Mathematics",
"studentIds": [1,3,5]
...
...
}
{
"courseId": 2,
"name": "Physics",
"studentIds": [2,3,5]
...
...
}
Я пытаюсь написать запрос, который будет возвращать записи в следующем формате:
Скажем, студент 1 запрашивает курсы, он записан на CourseId 1, таким образом, «зарегистрировано» является истинным, но учащийся 1 не зарегистрирован для CourseId 2, и поэтому «зарегистрировано» является ложным:
{
"courseId": 1,
"name": "Mathematics",
"enrolled": true
}
{
"courseId": 2,
"name": "Physics",
"enrolled": false
}
Единственное решение, которое я могу придумать, - это два запроса, первый запрос для поиска всех идентификаторы курсов, в которые зачислен учащийся, и, пробежав курсором по курсам во втором запросе, добавьте поле 'enrolled', основанное на существовании идентификатора курса в результате первого запроса, но ищите способ добиться этого в один запрос.
Спасибо.