2017-01-24 16 views
1

У меня есть много данных в формате CSV с большим количеством полей, для которых значение равно 0.mongoimport игнорировать значение поля 0

Я хотел бы импортировать все данные в коллекцию, но игнорировать поля, когда значение равно 0 (не игнорировать строку, только фид).

Без игнорирующих 0 полей, моя команда: mongoimport --db merch --collection output --type csv --headerline --file export_hub_dev.csv

Есть ли вариант с mongoimport, которая позволяет сделать это? Например, что-то вроде --parseGrace skipField, но с 0 значением?

Или любой другой способ сделать это легко?

Большое спасибо за помощь!

ответ

1

Вы можете сначала импортировать csv, а затем удалить поля на $UNSET. Вам нужно запустить это для каждого поля по одному. Формат обновления

db.collection.update(
    <query>, 
    <update>, 
    { 
    upsert: <boolean>, 
    multi: <boolean>, 
    writeConcern: <document>, 
    collation: <document> 
    } 
) 
+0

$ незадано обновление только первый документ соответствует ... Если я делаю петлю на моих 14 миллионов строк, она будет работать в течение нескольких часов. У вас есть другое решение? Или решение с $ unset, может быть, я ошибаюсь? – Toma

+0

@Toma. При обновлении вы можете указать свойство multi true. –

+0

Хорошо, спасибо :) – Toma