Sto cercando di rimuovere un elemento da una matrice utilizzando Java e non sono riuscito ...MongoDB rimuovere elemento dalla matrice
Ho una collezione "emailsInApp" e dentro ho questo:
{ "_id" : "750afe", "list" : [ "[email protected]", "[email protected]" ] }
{ "_id" : "711850", "list" : [ "[email protected]" ] }
Contiene per ogni ID le e-mail registrate.
Quello che mi piacerebbe fare è: dato un ID e una e-mail, rimuovi quella email da quella appId.
Questo è quello che ho atm e quando l'eseguo non cambia l'array a tutti:
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);
Mi può puntare nella giusta direzione per favore?
Edit: Come consigliato da @Constantine se metto a punto che questo è ciò che ottengo:
DBCollection emailsApp = db.getCollection(EmailsInAppColl);
queryEmail.put("_id", appId);
DBCursor cursor = emailsApp.find(queryEmail);
System.out.println("######*****"+cursor.next());
Nella console:
#####*****{ "_id" : "711850" , "list" : [ "[email protected]" , "[email protected]" , "[email protected]" , "[email protected]"]}
La query di ricerca è corretto, ma non rimuove la voce ...
Assicurati di avere il nome raccolta corretto nel parametro DBCollection e controlla se l'appId esiste realmente. Si prega di eseguire il debug in questo modo e dire se è tutto corretto. – user
Ciao @Constantine, Grazie per la risposta. L'ho provato usando un cursore e ha trovato l'id. Quindi è trovare l'applicazione, il problema è rimuovere l'elemento ... – HeWhoCodes