2015-11-14 3 views
0

Каждую неделю я получаю новую копию исходных данных (8500, и растет, записывает приблизительно и с полем id, которое Mongo использует как _id), и я хочу искать (и сохранять , сохраняя при этом старые данные) обновленная информация (возможно, около 30 изменений/добавлений в месяц). Я пытаюсь найти наилучший подход.Mongodb: как сравнить DB с новыми данными

Моя первая мысль заключалась в том, что для каждой записи в новых данных получить запись БД с помощью этого _id, сравнить и обновить данные, которые были изменены. Но это приводит к 8500 асинхронным вызовам по сети (to mongolab) + 30 upserts, где необходимо сохранить новые/измененные данные.

Итак, альтернативой является загрузка всего с самого начала. Но тогда я получаю массив из Монго и каждый раз нужно будет делать Array.find, чтобы получить элемент, соответствующий новым данным.

Есть ли команда Mongo для возврата результатов .find({}) в качестве объекта Javascript с ключом _id? Или это иначе имеет смысл взять необработанный массив формы Монго и тайным это сам к объекту

+0

Не уверен, что вы говорите здесь. Вы пытаетесь решить, что у вас уже есть, чтобы не спрашивать об этом из внешнего источника? Или вы просто пытаетесь не создавать новые записи, если что-то уже существует в вашем хранилище данных? Примеры говорят немного громче, чем слова, объясняя, что вы делаете. –

+0

Не могли бы вы использовать mongo upsert? https://docs.mongodb.org/manual/tutorial/modify-documents/#upsert-option –

+0

Я использую это, поскольку новые данные могут также содержать совершенно новые документы (с новым идентификатором), но вопрос в том, как сохранить версии данных –

ответ

0

соберу: ID + версия + дату + ДАННЫЕ

Для каждого обновления:

  1. Сделать дамп БД прод для локального использования
  2. работать в автономном режиме, в местном MongoDB (потому что вы не хотите, чтобы запустить 9000 запрос по сети)
  3. для каждой строки сравнения ДАННЫЕ to mongo datas , если модификации == true, сохранит новый/первый (id + версия) else skip;
  4. сделать дамп вашей локальной БД
  5. installl свалку производства Environnement

mongodb doc dump

+0

спасибо. Я собираюсь перепросить вопрос о структуре данных, поскольку это то, что я сейчас застрял –

Смежные вопросы