クライアントのデータをインポートしていますが、文字列リテラル"Infinity"
はCSVファイルに表示されたときにはDouble
実際の文字列よりもmongoimport - CSV "Infinity"文字列リテラルをDouble値ではなく文字列として扱います
値が引用符で囲まれていない場合は意味がありますが、この文脈では文字列として扱う必要があります。
次(簡易)CSV入力ファイルください:次のようにインポートされた場合には
ID,Name
1,"Infinity"
:
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
> use infinity-test
switched to db infinity-test
> db.getCollection('test-data').find()
{ "_id" : ObjectId("5a09c48ba7025b2e68885f91"), "ID" : 1, "Name" : Infinity }
>
問題:
mongoimport.exe -v --host localhost:27017 --username admin --password password --authenticationDatabase admin -d "infinity-test" -c "test-data" --file C:\test-data.csv --type csv --headerline
それは、以下の結果が得られますフィールドを提供するMongoBoosterで見つけるのが簡単ですタイプ:
は、文字列リテラル"Infinity"
を治療するためのmongoimport
を強制する方法はありますか?
を使用して
とインポート最新のリリースでは、インポートの列の種類を既定値を超えて指定できます。 FYI古いMongoDBを使用したとしても、最新の "tools"パッケージ(mongoimport、mongodumpなど)のインストールを止めることはありません。これらはすべてのバージョンで動作します。 –