2016-03-23 5 views
-1

は、私がデータ今は、「私は」との文字列としてインポートしまった最後のオブジェクトのためのMongoDBの量フィールドにこのcsvファイルをインポートするとき

id,amount,comments 
"1",5.0,"cccc" 
"2",4.0,"cccc" 
"3",,"cccc" 

でcsvファイルを持っているCSVのインポート後にStringデータ型のヌルフィールドを変換します値として。

{ 
    "_id" : ObjectId("56f26dc2e5ec3103f7123e65"), 
    "id" : 1, 
    "amount" : 5, 
    "comments" : "cccc" 
} 
{ 
    "_id" : ObjectId("56f26dc2e5ec3103f7123e66"), 
    "id" : 2, 
    "amount" : 4, 
    "comments" : "cccc" 
} 
{ 
    "_id" : ObjectId("56f26dc2e5ec3103f7123e67"), 
    "id" : 3, 
    "amount" : "", 
    "comments" : "cccc" 
} 

しかし、私はMongoDBの中でこれを達成するためにどのように値0.0 とダブルでこのフィールドをしたいですか?

+0

'mongoimport'はitselffによってそれをしません。基本的には、この種のことを行うツールとして設計されていません。値を置換する場合は、まず入力ファイル内で値を置換するか、値を「後」に更新します。インポートを行っているのが自分のコードであれば、コードを単に値に置き換えてください。 –

答えて

0

最良の方法は、.update()声明、代わりに0から$set値で$type演算子を使用して"amount"フィールドに「文字列」を一致させることです。あなたが持っていない限り、

db.collection.update(
    { "amount": "" }, 
    { "$set": { "amount": 0 } }, 
    { "multi": true } 
) 

しかし、あなたの場合:

db.collection.update(
    { "amount": { "$type": 2 } }, 
    { "$set": { "amount": 0 } }, 
    { "multi": true } 
) 

"multi"オプションは

あなたが交互にちょうど空の文字列""に一致する可能性の条件に一致するすべての文書へのアップデートを適用しますコレクションに他の書き込みが起こっている場合は、上書きするにはどんな文字列も受け入れ可能であると想定するのはかなり安全です。

関連する問題