J'essaie de supprimer un élément d'un tableau en utilisant Java et n'ont pas réussi ...MongoDB Supprimer l'élément de tableau
J'ai une collection « emailsInApp » et à l'intérieur, j'ai ceci:
{ "_id" : "750afe", "list" : [ "[email protected]", "[email protected]" ] }
{ "_id" : "711850", "list" : [ "[email protected]" ] }
Il contient pour chaque identifiant les emails enregistrés.
Ce que je voudrais faire est: donné un id et un email, enlève cet email de ce appId.
C'est ce que je atm et quand je le lance, il ne change pas le tableau du tout:
DBCollection emailsApp = db.getCollection(EmailsInAppColl);
BasicDBObject queryEmail = new BasicDBObject();
queryEmail.put("_id", appId);
BasicDBObject updateEmailCommand = new BasicDBObject();
updateEmailCommand.put("$pull", new BasicDBObject("list", email));
emailsApp.update(queryEmail, updateEmailCommand, true, true);
Pourriez-vous me diriger dans la bonne direction s'il vous plaît?
Edit: Comme reccomended par @Constantine si je déboguer ce que je reçois:
DBCollection emailsApp = db.getCollection(EmailsInAppColl);
queryEmail.put("_id", appId);
DBCursor cursor = emailsApp.find(queryEmail);
System.out.println("######*****"+cursor.next());
Dans la console:
#####*****{ "_id" : "711850" , "list" : [ "[email protected]" , "[email protected]" , "[email protected]" , "[email protected]"]}
La requête de recherche est correct, mais il ne supprime pas l'élément ...
Assurez-vous que vous avez le bon nom de collection dans le paramètre DBCollection et vérifiez si l'appId existe réellement. S'il vous plaît, déboguez-le de cette façon et dites si tout est correct. – user
Bonjour @Constantine, Merci pour la réponse. Je l'ai testé en utilisant un curseur et il a trouvé l'identifiant. Donc, il est de trouver l'application, le problème est de supprimer l'élément ... – HeWhoCodes