2016-07-03 2 views
1

mongoimportを使用してCSVファイルをインポートするときに空のセルのデフォルト値を指定する方法はありますか。mongoimportを使用するときに空のCSVフィールドのデフォルト値を設定する方法

私はこのようなCSVデータのインポート:

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

を私はsaltdefaultのようないくつかのデフォルト値にsaltを設定します。
mongoimportでどうすれば実現できますか、それを実現する他の方法がありますか?

答えて

0

私の知る限り、mongoimportでCSV値をインポートする際のデフォルト値のようなものはありません。

もちろん、スクリプトを使用してデータを事前準備することができます(例:引数として入力CSVファイルで呼び出されたときに、次のPythonスクリプトは、仕事をするだろう

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で文書を満たし、それに対してupdateコマンドを実行することです。

+0

私は2番目の解決方法を選択します。しかし、私のクラスタにはいくつかのデータがありますので、最初にこれらのcsvデータを渡すためのシングルトンmongodbを構築します。私の英語は貧しいです。ありがとうございます。 – ShenZhenpeng

+0

フィードバックいただきありがとうございます!私はあなたの質問を理解しました。それは言語コミュニケーションの全ポイントです。だから心配しないでください:) – DAXaholic

関連する問題