を働いていない私は、このモンゴ/ JavaのfindAndReplaceは
email{
"isConfirmed" : true/[or false]
"email" : "xxxxxxxxxxx"
}
ようMongoのコレクションを持って、私は明らかにユニークである電子メールに応じて、trueまたはfalseにisConfirmed
フィールドを更新しようとしているとき、それは年齢を取ります。
私が使用しているプログラミング言語はJavaです
ここに私のコードです。でもfindAndModifyがまったく動作しません
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);
この1つは
//mongoCollection.findAndModify(query, Update);
]周りの3500エントリで構成コレクションを実行するために年齢を取る、私はここで何かが欠けていた場合、私はわからない
しかし、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
私の間違いです。 clientEmailsはグローバル配列で、ここで使用される前に別のメソッドで埋められています。 ;-) – user601878