Будет «collection.Удалить (запрос .Где (предикат))» попытается удалить как можно больше, даже если обнаружена ошибка?

#c# #mongodb #mongodb-.net-driver #removeall

#c# #mongodb #mongodb-.net-driver #удалить все

Вопрос:

Что я действительно хочу знать, так это то, будет ли следующая операция пытаться удалить все документы, даже если один из них не может быть удален по какой-либо причине:

Использование драйвера MongoDB C #:

 collection.Remove(Query<T>.Where(predicate));
 

Я хочу знать это, потому что я выполняю операцию отката и хочу удалить все документы, соответствующие запросу, даже если документ по какой-то причине не может быть удален.

Удалите как можно больше…

Будет ли эта операция вызывать исключение, если документ не может быть удален или будет продолжаться до конца и возвращать ошибку в конце?

Спасибо.

То, что я использовал сначала:

         bool success = true;

        #region Delete everything

        try
        {
            foreach (Person person in persons)
            {
                try
                {
                    PersonRepository.Delete(person );
                }
                catch (Exception exception)
                {
                    success = false;
                }
            }
        }
        catch (Exception exception)
        {
            success = false;
        }

        #endregion
 

Но я хочу заменить приведенный выше код на:

 PersonRepository.Delete(Query<Person>.Where(p => p.Name == name));
 

Под методом удаления PersonRepository я использую сейчас:

 collection.Remove(Query<T>.Where(predicate));
 

Будет ли это пытаться удалить всех пользователей, даже если ни один из них не может быть удален по какой-либо магической причине?

Комментарии:

1. Вы уверены? MongoDB не предоставляет ACID при записи нескольких документов в коллекции. Поддерживается только один документ для записи ACID.