Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MongoDB driver получить индекс массива второго уровня / 2 сообщений из 2, страница 1 из 1
06.08.2020, 13:17
    #39987068
Фёдор К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB driver получить индекс массива второго уровня
Здравствуйте.

В проекте используется MongoDB.

Есть коллекция объектов с названим Projects

Упрощенная модель Project:
Код: sql
1.
2.
3.
Project
    |_ ProjectTasks [Массив]
            |_ Comments [Array]


Проект имеет массив задач, которые в свою очередь имеют массив комментариев.

Сейчас я могу управлять массивом ProjectTasks через конструкцию
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
// получаю индекс задачи
var projectTaskIndex = await collection // collection  - это IMongoCollection<Project>
                .Find(p => p.ProjectID == projectID) // projectID, projectTaskID - перем. содерж. Id проекта и т.д.
                .Project(p => p.ProjectTasks.FindIndex(t => t.ProjectTaskID == projectTaskID))
                .SingleOrDefaultAsync();

// использую этот индекс для обновления 
var updateDefinition = new UpdateDefinitionBuilder<Project>()
                .Set(p => p.ProjectTasks[projectTaskIndex].TaskStatus, "Новый статус");


Всё работает.

Проблема:
Не знаю как получить индекс комментария, чтобы управлять так:
Код: c#
1.
2.
3.
var updateDefinition = new UpdateDefinitionBuilder<Project>()
                .Set(p => p.ProjectTasks[projectTaskIndex].TaskStatus, "Новый статус")
                .Set(p => p.ProjectTasks[projectTaskIndex].Comments[commentIndex].CommentDescription, "Описание для ...");


Как получить commentIndex подобно projectTaskIndex ?
...
Рейтинг: 0 / 0
06.08.2020, 16:05
    #39987185
Фёдор К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB driver получить индекс массива второго уровня
Дополнительно:

Позиционный оператор "$"
Код: c#
1.
Set("ProjectTasks.$[a].Comments.$[b].CommentDescription", "Описание для ...") 

не устраивает, т.к. отсутствует типизация.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MongoDB driver получить индекс массива второго уровня / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]