2016-10-14 6 views
0

В MongoDB, как я могу увеличить несколько файлов за раз, которые находятся в формате json?Упрощение запроса для нескольких записей

Я могу upsert одну запись с помощью

db.sample.update(
    { name: "harish" }, 
    { 
     $set: { "size": 2015 }, 
     $setOnInsert: { "name": "hi" } 
    }, 
    { upsert: true } 
) 

Но как я upsert в JSON-файл, который содержит миллионы записей?

{"name": "mouli", "company": "jp morgan", "size": 40, "role": "architect"} {"name": "siva", "company": " IBM "," size ": 30," role ":" architect "} {" name ":" siva sai "," company ":" cisco "," size ": 220," role ":" CEO "} { "name": "siva {" name ":" durga prasad "," company ":" big datamatica "," size ": 50," role ":" CEO "} sai varma", "company": "karbon" , «размер»: 50, «роль»: «тренер»} {«имя»: «яган», «компания»: «амазонка», «размер»: 500, «роль»: «разработчик»}

+0

Можете ли вы обновить свой вопрос, включив в него образец данных json-файла? – chridam

+0

У меня есть запись, как этот { «имя»: «Дурга Прасад», «компания»: «большой datamatica», «размер»: 50, «роль»: «Генеральный директор»} мне нужно обновить, как этот {"name": "durga prasad", "company": "google", "size": 50, "role": "CEO"} После использования mongoimport Я могу получить {"name": "durga prasad "," company ":" big datamatica "," size ": 50," role ":" CEO "} {" name ":" durga prasad "," company ":" google "," size ": 50 , «role»: «CEO»} Я получаю как записи, мне нужна только обновленная запись Если поле не существует, оно должно добавить к th e существующая запись –

+1

Пожалуйста, добавьте свои json-объекты в свой вопрос. Вы можете сделать это с помощью клика по ссылке редактирования под своим вопросом. После этого удалите свои комментарии. – reporter

ответ

1

Upsert in mongodb означает обновление записи, соответствующей условию, и если mongodb не найдет условия согласования записи, он вставляет новый документ со значениями, указанными в запросе.

Означает, что он может обновлять сразу несколько записей, но он вставляет только одну запись, если она не может найти условие соответствия документа.

Еще одна вещь, вам нужно добавить multi: true в опции для обновления нескольких записей.

db.sample.update({name: "harish"},{$set: {"size": 2015 }, $setOnInsert: { "name": "hi"}},{multi:true, upsert:true}) 
Смежные вопросы