Tôi đang cố gắng để loại bỏ một phần tử từ một mảng sử dụng Java và đã không thành công ...MongoDB loại bỏ mục từ mảng
Tôi có một "emailsInApp" thu thập và bên trong tôi có điều này:
{ "_id" : "750afe", "list" : [ "[email protected]", "[email protected]" ] }
{ "_id" : "711850", "list" : [ "[email protected]" ] }
Nó giữ cho mỗi id email đã đăng ký.
Điều tôi muốn làm là: được cung cấp id và email, xóa email đó khỏi ứng dụng đó.
Đây là những gì tôi có atm và khi tôi chạy nó nó không thay đổi mảng ở tất cả:
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);
Ông có thể chỉ cho tôi đi đúng hướng không?
Edit: Như reccomended bởi @Constantine nếu tôi gỡ lỗi nó đây là những gì tôi nhận được:
DBCollection emailsApp = db.getCollection(EmailsInAppColl);
queryEmail.put("_id", appId);
DBCursor cursor = emailsApp.find(queryEmail);
System.out.println("######*****"+cursor.next());
Trong giao diện điều khiển:
#####*****{ "_id" : "711850" , "list" : [ "[email protected]" , "[email protected]" , "[email protected]" , "[email protected]"]}
Các truy vấn tìm kiếm là đúng nhưng nó không loại bỏ mặt hàng ...
Đảm bảo bạn có tên bộ sưu tập phù hợp trong tham số DBCollection và kiểm tra xem appId có thực sự tồn tại hay không. Xin vui lòng, gỡ lỗi theo cách này và cho biết nếu nó là tất cả chính xác. – user
Xin chào @Constantine, Cảm ơn bạn đã trả lời. Tôi đã thử nghiệm nó bằng cách sử dụng một con trỏ và nó tìm thấy id. Vì vậy, ứng dụng đang tìm ứng dụng, sự cố đang xóa mục ... – HeWhoCodes