MongoDB DELETE Вложенный запрос внуков в C#C#

Место общения программистов C#
Ответить
Anonymous
 MongoDB DELETE Вложенный запрос внуков в C#

Сообщение Anonymous »

уже некоторое время пытался запустить запрос удаления против коллекции MongoDB; Сильно напечатали предметы, родители, вложенные дети, каждый с вложенными внуками. Я хочу удалить конкретного внука, который находится в определенном ребенке, у конкретного родителя. Я могу добраться до MatchedCount = 1, но ModifiedCount всегда 0, а удаление не происходит. Я пробовал много вариантов запроса, как отсюда, так и с использованием двигателя ИИ на веб -сайте Mongo. ничего не работает. < /p>
Структура сущности - это то, что вы ожидаете: < /p>

Код: Выделить всё

public class Parent
{
public string Id {get; set;}
public Child Child {get; set;}
}

public class Child
{
public Guid Id {get; set;}
public Grandchild Grandchild {get; set;}
}

public class Grandchild: Child
{
public Guid Id {get; set;}
public string Name {get; set;}
}
< /code>
Вот моя последняя попытка: < /p>
var filter = Builders
.Filter.Eq(x => x.Id, parentId);

var update = Builders.Update.Pull(
"Children.$[child].GrandChildren",
Builders.Filter.Eq(gc => gc.Id, Guid.Parse(grandChildId))
);

var arrayFilters = new List
{
new BsonDocumentArrayFilterDefinition(new BsonDocument("child._id", childId))
};

var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };

var result = await _parentCollection.UpdateOneAsync(filter, update, updateOptions);

return result.ModifiedCount == 1;
Обновление/удаление детей достаточно просто, но я не могу как -то добраться до внука. Кто -нибудь есть, что я делаю не так?


Подробнее здесь: https://stackoverflow.com/questions/797 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»