I'm using the MongoDB .Net driver in my project. I want to update all of the properties of my object that is stored in MongoDB. In the documentation, update is shown like this:
var filter = Builders<BsonDocument>.Filter.Eq("i", 10); var update = Builders<BsonDocument>.Update.Set("i", 110); await collection.UpdateOneAsync(filter, update);
But I don't want to call the Set
method for all of the properties, since there are many properties and can be many more in the future.
How can I update the whole object using the MongoDB .Net driver?
To update multiple elements, use []. The[] is an all positional operator indicating that the update operator should modify all elements in the specified array field.
You can do that with ReplaceOneAsync
instead of UpdateOneAsync
.
You need a filter to match the existing document (a filter with the document id is the simplest) and the new object.
Hamster hamster = ... var replaceOneResult = await collection.ReplaceOneAsync( doc => doc.Id == hamster.Id, hamster);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With