У меня есть такая коллекция Монго
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 минут. Может кто-нибудь предложить мне обходной путь или что-то?