The following code will allow me to update the Email where FirstName = "john" and LastName = "Doe". How do you update both Email and Phone without using Save() method?
MongoDB.Driver.MongoServer _server = MongoDB.Driver.MongoServer.Create("mongodb://localhost"); MongoDB.Driver.MongoDatabase _dataBase = _server.GetDatabase("test"); MongoDB.Driver.MongoCollection<Person> _person = _dataBase.GetCollection<Person>("person"); //Creat new person and insert it into collection ObjectId newId = ObjectId.GenerateNewId(); Person newPerson = new Person(); newPerson.Id = newId.ToString(); newPerson.FirstName = "John"; newPerson.LastName = "Doe"; newPerson.Email = "[email protected]"; newPerson.Phone = "8005551222"; _person.Insert(newPerson); //Update phone and email for all record with firstname john and lastname doe MongoDB.Driver.Builders.QueryComplete myQuery = MongoDB.Driver.Builders.Query.And(MongoDB.Driver.Builders.Query.EQ("FirstName", "John"), MongoDB.Driver.Builders.Query.EQ("LastName", "Doe")); MongoDB.Driver.Builders.UpdateBuilder update = MongoDB.Driver.Builders.Update.Set("Email", "[email protected]"); _person.Update(myQuery, update);
Starting from MongoDB 4.2 you can perform Updates with an Aggregation Pipeline. An aggregation pipeline enables more expressive updates including calculated fields and references to other field values in the same document.
You can use the updateOne() or updateMany() methods to add, update, or remove array elements based on the specified criteria. It is recommended to use the updateMany() method to update multiple arrays in a collection.
It's very simple ;), just add another set or some else operation to the your update:
var update = Update.Set("Email", "[email protected]") .Set("Phone", "4455512");
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