Ситуация:
У меня есть существующая коллекция документов в MongoDB, в которой я хочу обновить поля указанного c документа с полями входящего документа . Входящий документ имеет тот же класс, что и документы в коллекции, но не все его поля установлены, то есть некоторые поля являются пустыми. Теперь я не хочу заменять весь документ в коллекции, равно как и не хочу заменять все поля, но я хочу заменить только те поля, которые не равны нулю, а остальные оставить как есть .
Этот ответ SO описывает, как заменить весь документ. Я получил это, работая с этим кодом:
public void Update(string id, MyDoc docIn) => _docs.ReplaceOne(doc => scan.Id.Equals(ObjectId.Parse(id)), docIn);
Чтобы обновить отдельные поля в документе, в документах предлагается создать «Документ с выражениями оператора обновления» .
Мой вопрос:
Означает ли это, что я должен написать свою собственную функцию, превращающую мой входящий документ в такой «Документ выражений оператора обновления», или есть более удобный способ?