#mongodb
#mongodb
Вопрос:
У меня есть две коллекции, обе с ~ 1 миллионом документов.
Я хочу пометить документы в col1, если они существуют в col2:
db.col1.find().forEach(function(c1){
var c2=db.col2.find(a:c1.a);
if (c2!=null) {
c1.mark=true;
db.col1.save(c1);
}
});
Похоже, что приведенный выше скрипт не проходит через все документы, поэтому я обновляю только несколько (~ 50). Чего мне здесь не хватает?
Ответ №1:
Я предполагаю, что это связано с save
асинхронностью, и когда вы начинаете выполнять операции слишком быстро, они начинают вести себя странно. Я бы попытался изменить логику для обработки save
обратных вызовов, чтобы вы могли контролировать, сколько сохранений выполняется одновременно.
Комментарии:
1. Спасибо. Можете ли вы дать мне пример?