Можно ли выполнять массовое обновление/upsert (не вставлять) в MongoDB?
Если да, укажите мне какие-либо документы, связанные с этим?
Спасибо
Можно ли выполнять массовое обновление/upsert (не вставлять) в MongoDB?
Если да, укажите мне какие-либо документы, связанные с этим?
Спасибо
Вы можете использовать программу командной строки mongoimport, она должна быть в вашем каталоге bin MongoDB...
Есть два варианта использования upsert...
--upsert вставить или обновить уже существующие объекты
--upsertFields arg поля с разделителями-запятыми для части запроса upsert. Вы должны убедиться, что это проиндексировано
Дополнительная информация здесь: http://www.mongodb.org/display/DOCS/Import+Export+Tools
Или просто сделать...
$ mongoimport --help
mongo может выполнить .js
файл. вы можете поместить все команды обновления в файл js.
t.js
db.record.update({md5:"a35f10a8339ab678612d1f86be08b81a"},{$set:{algres:[]}},false,true);
db.record.update({md5:"a35f10a8339ab678612d1f86be08b81b"},{$set:{algres:[]}},false,true);
тогда mongo 127.0.0.1/test t.js
Массовые обновления также можно выполнять партиями, как указано в документации:
Я использую их для импорта файлов CSV, которые мне нужно немного помассировать перед импортом данных. Это довольно медленно при работе с обновлениями, но мои 50 000 обновлений документов были обновлены примерно за 83 секунды, что намного медленнее, чем команда mongoimport.