我有一個蒙戈集合這樣蒙戈/ Java的findAndReplace不工作
email{
"isConfirmed" : true/[or false]
"email" : "xxxxxxxxxxx"
}
當我試圖將isConfirmed
場更新爲true或false,這取決於這顯然是獨一無二的電子郵件,它需要年齡。
我正在使用的編程語言是Java
這是我的代碼。
List<String> clientEmails = new ArrayList<String>();
Mongo mongoConnection = new Mongo();
DB mongoDatabase = mongoConnection.getDB(DB_NAME);
DBCollection mongoCollection = mongoDatabase.getCollection(COLLECTION_NAME);
int size = clientEmails.size();
for(int i=0;
i
<
size; i++)
{
BasicDBObject query = new BasicDBObject();
System.out.println(clientEmails.get(i).toString());
query.put("email.email", clientEmails.get(i).toString());
BasicDBObject Update = new BasicDBObject("$set", new BasicDBObject("email.isConfirmed", false));
mongoCollection.update(query, Update);
這其中需要年齡過它由圍繞3500項]收集運行
//mongoCollection.findAndModify(query, Update);
即使findAndModify不會在所有的工作,我不知道如果我失去了一些東西
但是,我嘗試過使用DBcursor,它可以工作,但需要大約3分鐘才能運行。
// DBCursor cursor = mongoCollection.find(query);
//
// while(cursor.hasNext()){
// BasicDBObject Update = new BasicDBObject("$set", new BasicDBObject("email.isConfirmed", true));
// mongoCollection.update(cursor.next(), Update);
// }
這種方法大約需要3分鐘。有人可以提出我的解決方法或什麼?
你的`for`循環將永遠不會執行,因爲`size`總是0. – pingw33n 2011-02-03 20:38:43
哦,我的錯誤。 clientEmails是一個全局數組,在使用這個數組之前用另一種方法填充。 ;-) – user601878 2011-02-04 08:36:30