Je me demandais que je suis en train de mettre à jour un ou deux propriété d'un Document de collectionuser
ayant une propriété tels queModifier une propriété d'un document à l'aide des données de printemps mongodb
{
"id": "591fcd33f8bb03598ec34f70",
"name": null,
"username": "abc",
"emailId": "[email protected]",
"interestedFlag": 1,
"mobNo": "xxxxxxxxxx",
"userActiveFlag": 1,
"address": "1",
"city": "abx",
"state": "up",
"profileImage": [
{}
],
"joinedOn": null,
"modifiedOn": null,
"lastVisited": null,
"tempPassword": "1234567",
"sex": null,
"metaDataMap": {},
"dob": null
}
Supposons que je voulais mettre à jour user
nom seulement et si je courais save
avec la commande suivante:
userRepository.save(userEntity);
Il a changé mon utilisateur comme:
{
"id": "591fcd33f8bb03598ec34f70",
"name": "New Name",
"username": null,
"emailId": null,
"interestedFlag": null,
"mobNo": null,
"userActiveFlag": null,
"address": null,
"city": null,
"state": null,
"profileImage": null,
"joinedOn": null,
"modifiedOn": null,
"lastVisited": null,
"tempPassword": null,
"sex": null,
"metaDataMap": {},
"dob": null
}
Mais Idéalement je veux changer mon nom de l'utilisateur seulement.
Mon contrôleur utilisateur est:
@PATCH
@Path("/changepassword/{userId}")
@Consumes("application/json")
public User changeName(@PathParam("userId") String userId, final User user) {
userService.changePassword(user);
return user;
}
Mon serviceImpl est:
@Override
public User changeName(User user){
User userEntity = userRepository.findById(user.getId());
userEntity.setName(user.getName());
return userRepository.save(userEntity);
}
Mon mongoRepository est:
public interface UserRepository extends MongoRepository<User, String>
S'il vous plaît aidez-moi à y parvenir d'une manière correcte avec Spring-data-mongodb.
Cela aidera. http://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/#mongodb-template-update – Veeram
vous devez utiliser MongoTemplate pour cela – pvpkiran