c # MongoDB driver: FindOneAndUpdate, как узнать, нашел ли он документ?

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

IMongoDatabase db = _mongoClient.GetDatabase(DataBase); IMongoCollection collection = db.GetCollection(str_collection); collection.FindOneAndUpdate( e => e._id == eventoId && e._visitantes.Any(v => v._empresa == empresa && v._nombre == nombre && v._apellidos == apellidos), Builders.Update.Set(e => e._visitantes[-1]._asistido, true)); 

Мой вопрос: как я знаю, что объект нашел в базе данных? Я видел документацию, и я ничего не нашел.

В случае, если этого не существует, я не хочу создавать новый объект, только я хочу знать, нашел ли объект для изменения значения.

Благодарю.

FindOneAndUpdate вернет документ (вы можете настроить, будет ли это старая версия или обновленная версия с помощью FindOneAndUpdateOptions ).

Если в базе данных не было найдено документа, возвращаемый документ должен быть просто null , поэтому вы можете просто использовать простую нулевую проверку.

Документация mongoose указывается в разделе « Параметры »:

Опции:

  • upsert: bool – создает объект, если он не существует. по умолчанию – false.

Там должен быть параметр upsert , который, если установлен в true, создаст новый объект, если ни один не найден. Однако это значение по умолчанию равно false, поэтому ваш вызов не должен создавать новую запись базы данных.

Я бы предположил, что C# driver должен вести себя одинаково. Если нет, вы можете установить для параметра Upsert значение false, см. Здесь