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