Учитывая, что этот документ представляет собой коллекцию курсов, я хотел бы выбрать
один объект участника из встроенного массива
{
_id: someCourseId,
CourseName: "someName",
Participants[
{UserId: X Name: "person1"},
{UserId:Y, Name:"person2"},
{UserID:Z, Name:"person3"}
]
}
Как мне написать запрос с помощью официального драйвера C # sharp, который только
возвращает вложенный массив Element с идентификатором пользователя Y?
Сейчас я могу выбрать курсы с участником с идентификатором Y
используя Query.EQ ("Players.UserId", Y), и я могу выбрать, чтобы получить только
Поле участников объекта курса с использованием
SetFields ("Участники"), но если этот массив огромен, я не хочу
получить весь массив, но только один элемент. Это возможно?
Если нет, то я бы посоветовал не использовать встроенные
массивы в тех случаях, когда требуется выборка определенных элементов.
Вместо этого следует использовать отдельную коллекцию для хранения значений массива.
и «внешний ключ к корневому документу» (как вы сделали бы в СУБД).
То есть в моем примере я бы создал коллекцию участников, где
каждый документ содержит идентификатор курса. Ты согласен?