2016-07-03 3 views
1

Можно ли указать значения по умолчанию для пустых ячеек при использовании mongoimport для импорта CSV-файла.Как установить значение по умолчанию для пустых полей CSV при использовании mongoimport

импортировать данные CSV, как это:

usename,password,salt 
[email protected],12345,, 
[email protected],asdf,, 
[email protected],ads,, 

, но я хочу, чтобы установить salt до некоторого значения по умолчанию, как saltdefault.
Как я могу достичь этого с помощью mongoimport, или у вас есть другой способ его реализовать?

ответ

0

Насколько мне известно, нет такой вещи, как значения по умолчанию для импорта значений CSV через mongoimport.

Но вы можете, конечно, подготовить данные заранее, используя какой-либо скрипт, например. следующий питон скрипт будет делать работу, когда вызывается с входного файла CSV в качестве аргумента

import csv 
import sys 

in_name = sys.argv[1] 
out_name = in_name + '.post' 

with open(in_name, newline="") as in_f, open(out_name, "w", newline="") as out_f: 
    reader = csv.reader(in_f) 
    writer = csv.writer(out_f) 

    # Keep heading 
    row = next(reader) 
    writer.writerow(row) 

    for row in reader: 
     if len(row[2]) == 0: 
      row[2] = 'Your default' 
     writer.writerow(row) 

Другим решением является первым импортировать данные в коллекцию MongoDB, а затем выполнить команду обновления против заполнения документов с пустыми salt ,

+0

Я выберу второе решение. Но в моем кластере есть некоторые данные, поэтому я смогу создать singleton mongodb, чтобы передать эти данные csv сначала, мой английский плохой, спасибо за вашу помощь. – ShenZhenpeng

+0

Спасибо за отзыв! Я понял ваш вопрос, и в этом весь смысл языка - общение; так что не волнуйся :) – DAXaholic