클라이언트 용 데이터를 가져오고 "Infinity"
문자열이 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
을 강제 할 수있는 방법이 있습니까?
[열 유형.] (https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-columnshavetypes)에 대해 읽으십시오. 현대 릴리스에서는 가져 오기에서 기본값 이외의 열 유형을 지정할 수 있습니다. 참고로 오래된 MongoDB를 사용했다하더라도 최신 "tools"패키지 인 mongoimport, mongodump 등을 설치하는 것을 막을 수있는 방법은 없습니다. 모든 버전에서 작동합니다. –