2015-08-26 3 views
0

Я новичок в MongoDB я пытаюсь импортировать файл JSON из моего локального в MongoDB используя командуИмпорт данных в MongoDB замещающие существующие документы

mongoimport --db testingdb --collection dbcollection1 --file books.json --jsonArray 

дописывает данные в коллекции отлично. Но когда я редактирую некоторые документы в том же файле JSON и повторяю команду вместо обновления документов, она снова добавляет те же данные. Итак, как я могу добавить документы в коллекцию, обновив документы, уже имеющиеся в db?

+0

Похоже, вы хотите ['--upsert'] (https://docs.mongodb.org/v3.0/reference/program/mongoimport/#cmdoption--upsert) и, вероятно, [' --upsertFields'] (https://docs.mongodb.org/v3.0/reference/program/mongoimport/#cmdoption--upsertFields). Но ваш вопрос не указывает, какие поля они должны были бы для того, чтобы назвать документ «совпадением». –

+0

Мне нужно, чтобы имя, называемое именем recipe_name, было таким же, чтобы вызвать документ «match» –

ответ

1

Как указано, опции --upsert и --upsertFields справляются с этим. Последний используется, когда поле или поля, отличные от _id, определяют, как согласовать документ.

В вашем случае:

mongoimport --db testingdb --collection dbcollection1 \ 
--upsert --upsertFields recipe_name \ 
--file books.json --jsonArray 

И если найдено совпадение для этого поля в коллекции, то данные, присутствующие будут перезаписаны при импортировании данных.

+0

Привет, Есть ли способ выяснить, что объекты не совпадают в json? Вот сообщение об ошибке для тех, которые не совпадали: «вставка ошибок: E11000 дублирование коллекции ошибок: info.restaurants index: slug_1 dup key: {: null} '. Любая помощь приветствуется. Благодаря! –

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

  • Нет связанных вопросов^_^