我試圖刪除使用Java數組中的元素,並沒有成功刪除項目......的MongoDB從陣列
我有一個「emailsInApp」收集和裏面我有這樣的:
{ "_id" : "750afe", "list" : [ "[email protected]", "[email protected]" ] }
{ "_id" : "711850", "list" : [ "[email protected]" ] }
它爲每個id保存註冊的電子郵件。
我想要做的是:給定一個id和一個電子郵件,從該appId中刪除該電子郵件。
這是我有個大氣壓,當我運行它,它根本不會改變數組:
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);
你能指出我在正確的方向嗎?
編輯: 作爲reccomended通過@Constantine如果我調試它,這是我所得到的:
DBCollection emailsApp = db.getCollection(EmailsInAppColl);
queryEmail.put("_id", appId);
DBCursor cursor = emailsApp.find(queryEmail);
System.out.println("######*****"+cursor.next());
在控制檯:
#####*****{ "_id" : "711850" , "list" : [ "[email protected]" , "[email protected]" , "[email protected]" , "[email protected]"]}
搜索查詢是正確的,但它不會刪除該物品...
確保您在DBCollection參數中有正確的集合名稱,並檢查appId是否真的存在。請用這種方式進行調試,並告訴它是否全部正確。 – user
嗨@Constantine, 謝謝你的回覆。 我用光標測試過它,發現了id。 所以它找到的應用程序,問題是刪除該項目... – HeWhoCodes