약 2000 개의 레코드로 구성된 json 파일이 있습니다. mongo 데이터베이스의 문서에 해당하는 각 레코드는 다음과 같이 형식화됩니다.
{jobID:"2597401",
account:"XXXXX",
user:"YYYYY",
pkgT:{"pgi/7.2-5":{libA:["libpgc.so"],flavor:["default"]}},
startEpoch:"1338497979",
runTime:"1022",
execType:"user:binary",
exec:"/share/home/01482/XXXXX/appker/ranger/NPB3.3.1/NPB3.3-MPI/bin/ft.D.64",
numNodes:"4",
sha1:"5a79879235aa31b6a46e73b43879428e2a175db5",
execEpoch:1336766742,
execModify: new Date("Fri May 11 15:05:42 2012"),
startTime: new Date("Thu May 31 15:59:39 2012"),
numCores:"64",
sizeT:{bss:"1881400168",text:"239574",data:"22504"}},
각 레코드는 JSON 파일에서 한 줄에 있으며 줄 바꿈은 모든 레코드 끝에 있습니다. 따라서 문서의 각 줄은 “{jobID :”로 시작합니다. 다음 명령을 사용하여 몽고 데이터베이스로 가져 오려고합니다.
mongoimport --db dbName --collection collectionName --file fileName.json
그러나 다음과 같은 오류가 발생합니다.
Sat Mar 2 01:26:12 Assertion: 10340:Failure parsing JSON string near: ,execModif
0x10059f12b 0x100562d5c 0x100562e9c 0x10025eb98 0x10000e643 0x100010b60 0x10055c4cc 0x1000014b7
0x100001454
0 mongoimport 0x000000010059f12b _ZN5mongo15printStackTraceERSo + 43
1 mongoimport 0x0000000100562d5c _ZN5mongo11msgassertedEiPKc + 204
2 mongoimport 0x0000000100562e9c _ZN5mongo11msgassertedEiRKSs + 12
3 mongoimport 0x000000010025eb98 _ZN5mongo8fromjsonEPKcPi + 1576
4 mongoimport 0x000000010000e643
_ZN6Import8parseRowEPSiRN5mongo7BSONObjERi + 2739
5 mongoimport 0x0000000100010b60 _ZN6Import3runEv + 7376
6 mongoimport 0x000000010055c4cc _ZN5mongo4Tool4mainEiPPc + 5436
7 mongoimport 0x00000001000014b7 main + 55
8 mongoimport 0x0000000100001454 start + 52
Sat Mar 2 01:26:12 exception:BSON representation of supplied JSON is too large: Failure parsing
JSON string near: ,execModif
Sat Mar 2 01:26:12
Sat Mar 2 01:26:12 imported 0 objects
Sat Mar 2 01:26:12 ERROR: encountered 1941 errors
나는 문제가 무엇인지 모른다. 누군가 솔루션을 추천 할 수 있습니까?
답변
다음 쿼리를 사용하여 오류를 해결할 수있었습니다.
mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray
잘하면 이것은 누군가에게 도움이됩니다.
답변
이 시도,
mongoimport --db dbName --collection collectionName <fileName.json
예,
mongoimport --db foo --collection myCollections < /Users/file.json
connected to: *.*.*.*
Sat Mar 2 15:01:08 imported 11 objects
문제는 날짜 형식 때문입니다.
아래와 같이 수정 된 날짜와 동일한 JSON을 사용했으며 작동했습니다.
{jobID:"2597401",
account:"XXXXX",
user:"YYYYY",
pkgT:{"pgi/7.2-5":{libA:["libpgc.so"],flavor:["default"]}},
startEpoch:"1338497979",
runTime:"1022",
execType:"user:binary",
exec:"/share/home/01482/XXXXX/appker/ranger/NPB3.3.1/NPB3.3-MPI/bin/ft.D.64",
numNodes:"4",
sha1:"5a79879235aa31b6a46e73b43879428e2a175db5",
execEpoch:1336766742,
execModify:{"$date" : 1343779200000},
startTime:{"$date" : 1343779200000},
numCores:"64",
sizeT:{bss:"1881400168",text:"239574",data:"22504"}}
도움이 되었기를 바랍니다
답변
mongoimport 를 사용 하면 동일한 결과를 얻을 수 있습니다
mongoimport --db test --collection user --drop --file ~/downloads/user.json
어디,
test - Database name
user - collection name
user.json - dataset file
--drop
이미 존재하는 경우 컬렉션을 삭제합니다.
답변
콘솔:
mongoimport -d dbName -c collectionName dataFile.js
답변
DB 내보내기에 아래 명령을 사용했습니다.
mongodump --db database_name --collection collection_name
아래 명령으로 DB를 가져올 수있었습니다.
mongorestore --db database_name path_to_bson_file
답변
구문이 다음과 같이 완전히 올바르게 나타납니다.
mongoimport --db dbName --collection collectionName --file fileName.json
올바른 폴더에 있는지 또는 전체 경로를 제공하십시오.
답변
다른 터미널에서 가져 오기 명령을 실행하십시오. (몽고 껍질 안에는 없습니다.)
mongoimport --db test --collection user --drop --file ~/downloads/user.json