Я сейчас обновляю свой код до MongoDB C# driver 2.0, и у меня возникают проблемы с обновлением кода для обновления документов.MongoDB C# Driver 2.0 - Обновить документ
с использованием старой версии я был в состоянии сделать что-то вроде этого:
MyType myObject; // passed in
var collection = _database.GetCollection<MyType>("myTypes");
var result = collection.Save(myObject);
Я изо всех сил, чтобы найти способ сделать это в новой версии. Я нашел несколько примеров обновления отдельных полей, как
var filter = Builders<MyType>.Filter.Eq(s => s.Id, id);
var update = Builders<MyType>.Update.Set(s => s.Description, description);
var result = await collection.UpdateOneAsync(filter, update);
Я хотел бы, чтобы обновить все поля, как я делал в старой версии с помощью метода Save.
Любые идеи?
Большое спасибо
Thanks mnemosyn! Я как раз собирался опубликовать свой собственный ответ, поскольку я только что нашел ReplaceOneAsync несколько минут назад. Спасибо, в любом случае, это именно то, что мне нужно! –
Откуда вы получаете значение для «id»? – redwards510
Я думаю, что лучше работать с BsonDocument вместо MyType. Если MyType имеет флаг BsonIgnoreExtraFields, документ будет игнорировать поля, которые не представлены в классе MyType. В методе insert метод будет только вставлять поля, которые существуют в классе, и вы потеряете все другие непредставленные поля. –