próbuję usunąć element z tablicy przy użyciu języka Java i nie były udane ...MongoDB usunąć element z tablicy
Mam „emailsInApp” zbieranie i wewnątrz mam to:
{ "_id" : "750afe", "list" : [ "[email protected]", "[email protected]" ] }
{ "_id" : "711850", "list" : [ "[email protected]" ] }
Zawiera dla każdego identyfikatora zarejestrowane wiadomości e-mail.
Co chcę zrobić: podać identyfikator i wiadomość e-mail, usunąć tę wiadomość z tego appId.
To co mam atm i gdy uruchomię go to w ogóle nie zmieniać tablicę:
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);
Czy możesz wskazać mi w dobrym kierunku, proszę?
Edit: Jak poleciła przez @Constantine jeśli debugować to jest to, co mam:
DBCollection emailsApp = db.getCollection(EmailsInAppColl);
queryEmail.put("_id", appId);
DBCursor cursor = emailsApp.find(queryEmail);
System.out.println("######*****"+cursor.next());
W konsoli:
#####*****{ "_id" : "711850" , "list" : [ "[email protected]" , "[email protected]" , "[email protected]" , "[email protected]"]}
wyszukiwane hasło jest poprawne, ale nie usuwa element ...
Upewnij się, że masz poprawną nazwę kolekcji w parametrze DBCollection i sprawdź, czy plik appId rzeczywiście istnieje. Proszę, debuguj go w ten sposób i powiedz, czy wszystko jest w porządku. – user
Hi @Constantine, Dziękuję za odpowiedź. Zrobiłem to za pomocą kursora i znalazłem identyfikator. To jest znalezienie aplikacji, problem polega na usunięciu elementu ... – HeWhoCodes