@rockwell323

Как отбрасывать дубликаты при записи в mongoDB?

Здравствуйте, в общем такая ситуация, написал код, который ежеминутно скачивает csv БД, парсит ее и записывает нужные мне данные по нужной модели в коллекцию mongoDB в итоге записывает более 40к обьектов при первом записи, так как csv БД на стороннем сайте обновляется ежеминутно, что то новое добавляется в нее , приходится качать ее ежеминутно, парсить и записывать её снова и снова в коллекцию mongoDB из-за чего ее объем растет в арифметической прогрессии(40к -80к-120к и т.д.) и соответственно появляются дубликаты.
Вопрос заключается в том, как мне при последующих записях в mongoDB отбрасывать дубликаты, которые уже существуют в моей коллекции, чтобы записывались только новые объекты, которых еще нет в моей коллекции?
Пытаюсь сравнивать две БД уже существующую и новую, второй день попыток, пока что результатов не принесло(
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ответы на вопрос 3
@juxifo
Используйте update вместо insert.

Может, и по хешам можно сравнивать, но для 40к+ объектов думаю это непростительная для оптимизации задача.
Ответ написан
Комментировать
@rockwell323 Автор вопроса
Разобрался с updateOne, все работает, но есть одно но, база обновляется и записывает новые объекты за ~6 минут и процессов в течении этих 6 минут загружен на 100%. Задача заключалась чтоб в течении минуты это все происходило и без такой колоссальной нагрузки нагрузки на процессор.
Ответ написан
Комментировать
@MyAngelRem
Так не пробовали?
dbo.collection('collection').findOne({ _id: database_2._id }, function (err, data) {
    if (!data) {
        
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы