In my database I have a document that looks like this
{
"_id" : ObjectId("5864ddd8e38112fd70b89893"),
"_class" : "com.apic.models.UserReg",
"name" : "Bijay",
"email" : "apic.apps@gmail.com",
"psd" : "16d932a5a3da90cc6afd831016b5a6821f0badf7e2c624159205924433613c3a",
"activationToken" : "fe8376ea2dbdf61ebc0f11a2361d741ba3178362d5bf876cf47e6a126bc5b39c",
"verified" : false
}
I also have a bean that looks like this
public class User {
@Id
private int id;
private String name;
private String email;
// getter/setter methods
}
So when I try to call save()
method of MongoOperations
, it replaces all missing properties like psd, verified and activationToken.
mongoOperations.save(user, COLLECTION);
Is there any way where I can update only the existing properties in my models class and leave others as it is?
Yes you can call selective updates
Query query = new Query(new Criteria("id").is(user.getId()));
Update update = new Update().set("name", user.getName()).set("email", user.getEmail());
mongoOperations.updateFirst(query, update, COLLECTION);