Bonjour,
avec spring boot je tente de modifier une valeur avec mongodb, voici l'insertion manuel de ma donnée:
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CommandLineRunner start(PageHtmlRepository pageHtmlRepository) { return args -> { //remplissage de page html pageHtmlRepository.deleteAll(); Stream.of("contenuHtml").forEach(c -> { System.out.println("ajotuer actualité ..."); pageHtmlRepository.save(new PageHtml(null,"je suis aquarell 22","aquarel")); });
ma configuration est très simple dans appplication.proprieties:
voici le résultat de ma donnée dans mogo admin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 spring.data.mongodb.uri=mongodb://localhost:27017/publication server.port=8787
j'ai ma donnée insérer correctement, et je souhaite faire un put pour modifier le "contentHtml"(côté front-end avec angular).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {"_id":"5d984c04eb810c7cba70d2a9","contentHtml":"je suis aquarell 22","routePublication":"aquarel","_class":"publication.entite.PageHtml"}
Code angular : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 let updatePublication = document.getElementById('pageHTML'); return this.http.put( this.hostWbsPagehtml + localStorage.getItem("paramUrl"), { "contentHtml": updatePublication.innerHTML }, { headers: new HttpHeaders( { 'Authorization': localStorage.getItem('token') } ) } );
voici le résultat dans mongo:
j'ai perdu "routePublication" après modification , par contre mon _id de mongo est le même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {"_id":"5d984c04eb810c7cba70d2a9","contentHtml":"contenu modifier","_class":"publication.entite.PageHtml"}
comment je dois faire correctement la modification dans mongo db, suis-je obligé de récupérer l'ancienne donnée ,et de modifier cette donnée avec le nouveau contenu
afin qu'il ne puisse pas être supprimé ?
ou il faut obligatoirement passer par mon dao , créer une méthode qui ne modifie que l'attribut concerné ?
voici mon dao :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @RepositoryRestResource public interface PageHtmlRepository extends MongoRepository<PageHtml,String>{ // public List<Sommaire> findByroute(@Param("rt") String nameSommaire); @RestResource(path="/byRoute") public List<PageHtml> findByroutePublication(@Param("rt") String routePublication); String countByRoutePublication(String string); }
merci de vos réponses
Partager