복붙노트

[MONGODB] JSON 파일의 Mongoimport

MONGODB

JSON 파일의 Mongoimport

I 2000에 대한 기록 구성된 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: 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

나는 문제가 무엇인지 모른다. 누군가가 솔루션을 추천 할 수 있습니까?

해결법

  1. ==============================

    1.나는 다음과 같은 쿼리를 사용하여 오류를 수정할 수 있었다 :

    나는 다음과 같은 쿼리를 사용하여 오류를 수정할 수 있었다 :

    mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray
    

    희망이 누군가에게 도움이됩니다.

  2. ==============================

    2.이 시도,

    이 시도,

    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"}}
    

    희망이 도움이

  3. ==============================

    3.콘솔:

    콘솔:

    mongoimport -d dbName -c collectionName dataFile.js 
    
  4. ==============================

    4.동일한을 달성 할 수 mongoimport를 할 수 사용

    동일한을 달성 할 수 mongoimport를 할 수 사용

    mongoimport --db test --collection user --drop --file ~/downloads/user.json
    

    어디에,

    test - Database name
    user - collection name
    user.json - dataset file
    

    이미 존재하는 경우 컬렉션을 드롭 --drop입니다.

  5. ==============================

    5.귀하의 구문은 완전히 올바른에 나타납니다 :

    귀하의 구문은 완전히 올바른에 나타납니다 :

    mongoimport --db dbName --collection collectionName --file fileName.json
    

    당신이 올바른 폴더에 있거나 전체 경로를 제공합니다.

  6. ==============================

    6.나는 수출 명령 아래에 사용한 DB

    나는 수출 명령 아래에 사용한 DB

    mongodump --db database_name --collection collection_name
    

    제가 DB를 가져올과 명령 아래 일

    mongorestore --db database_name path_to_bson_file
    
  7. ==============================

    7.다른 터미널에서 가져 오기 명령을 실행합니다. (내부 쉘 몽고 없음.)

    다른 터미널에서 가져 오기 명령을 실행합니다. (내부 쉘 몽고 없음.)

    mongoimport --db test --collection user --drop --file ~/downloads/user.json
    
  8. ==============================

    8.창에서는 다음 명령을 입력하여 터미널을 사용할 수 있습니다 우분투, 당신의 명령 Prompcmd는 cmd를 사용할 수 있습니다 :

    창에서는 다음 명령을 입력하여 터미널을 사용할 수 있습니다 우분투, 당신의 명령 Prompcmd는 cmd를 사용할 수 있습니다 :

    mongoimport  -d  your_database_name  -c  your_collection_name  /path_to_json_file/json_file_name.json
    

    당신이 당신의 몽고 쉘을 열 때 다음이 명령을 실행하는 데이터베이스 _를 확인 찾을 수 있습니다 :

    show databases
    
  9. ==============================

    9.더 수집이 지정되지 않은 경우이 명령은 작동합니다.

    더 수집이 지정되지 않은 경우이 명령은 작동합니다.

    mongoimport --db zips "\MongoDB 2.6 Standard\mongodb\zips.json"
    

    명령을 실행 한 후 몽고 쉘

    connected to: 127.0.0.1
    no collection specified!
    using filename 'zips' as collection.
    2014-09-16T13:56:07.147-0400 check 9 29353
    2014-09-16T13:56:07.148-0400 imported 29353 objects
    
  10. ==============================

    10.나는 이런 식으로 뭔가를 시도하고 실제로 작동 :

    나는 이런 식으로 뭔가를 시도하고 실제로 작동 :

    mongoimport --db dbName --file D:\KKK\NNN\100YWeatherSmall.data.json
    
  11. ==============================

    11.이 사용자 이름과 암호를 사용하여 나와 함께 할 때 DB를 작동

    이 사용자 이름과 암호를 사용하여 나와 함께 할 때 DB를 작동

    mongoimport --db YOUR_DB --collection MyCollection --file /your_path/my_json_file.json -u my_user -p my_pass
    

    사용자 이름 암호가없는 DB는 -u my_user -p my_pass 제거하십시오

    내 샘플 JSON

    { 
        "_id" : ObjectId("5d11c815eb946a412ecd677d"), 
        "empid" : NumberInt(1), 
        "name" : "Rahul"
    }
    { 
        "_id" : ObjectId("5d11c815eb946a412ecd677e"), 
        "empid" : NumberInt(2), 
        "name" : "Rahul"
    }
    
  12. ==============================

    12.해결책:-

    해결책:-

    mongoimport --db databaseName --collection tableName --file filepath.json
    

    예:-

    관리자 폴더에 파일을 배치하십시오 -

    C:\Users\admin\tourdb\places.json
    

    터미널에서이 명령을 실행합니다 -

    mongoimport --db tourdb --collection places --file ~/tourdb/places.json
    

    산출:-

    admin@admin-PC MINGW64 /
    $ mongoimport --db tourdb --collection places --file ~/tourdb/places.json
    2019-08-26T14:30:09.350+0530 connected to: localhost
    2019-08-26T14:30:09.447+0530 imported 10 documents
    

    더 링크

  13. ==============================

    13.이 테스트 모음을 내보내려고하는 경우 :

    이 테스트 모음을 내보내려고하는 경우 :

    > db.test.find()
    { "_id" : ObjectId("5131c2bbfcb94ddb2549d501"), "field" : "Sat Mar 02 2013 13:13:31 GMT+0400"}
    {"_id" : ObjectId("5131c2d8fcb94ddb2549d502"), "field" : ISODate("2012-05-31T11:59:39Z")}
    

    mongoexport 출력되도록 (ISODate 사용은 (...)에) 두 번째 행과 동일 될 경우 일자로 작성된 제 날짜 (...) 및 새로운 날짜 (...로 작성된 번째) ()와 mongoexport 이 같은 모습이 될 것입니다 :

    { "_id" : { "$oid" : "5131c2bbfcb94ddb2549d501" }, "field" : "Sat Mar 02 2013 13:13:31 GMT+0400" }
    { "_id" : { "$oid" : "5131c2d8fcb94ddb2549d502" }, "field" : { "$date" : 1338465579000 } }
    

    엄격한 JSON 유형 날짜 (<일자>)이 없기 때문에 당신은 같은 표기법을 사용한다 그래서.

    또한 JSON이 유효하지 않습니다 : 모든 필드 이름은 큰 따옴표로 묶여 있지만, mongoimport는 그들없이 잘 작동해야합니다.

    당신은 MongoDB의 문서와 여기에 추가 정보를 찾을 수 있습니다.

  14. ==============================

    14.약간 늦게 가능한 답변, 새로운 사람들을 도움이 될 수 있습니다. 경우 당신은 데이터베이스의 여러 인스턴스를 :

    약간 늦게 가능한 답변, 새로운 사람들을 도움이 될 수 있습니다. 경우 당신은 데이터베이스의 여러 인스턴스를 :

    mongoimport --host <host_name>:<host_port> --db <database_name> --collection <collection_name>  --file <path_to_dump_file> -u <my_user> -p <my_pass>
    

    필요한 자격 증명을 가정하면, 그렇지 않으면이 옵션을 제거합니다.

  15. from https://stackoverflow.com/questions/15171622/mongoimport-of-json-file by cc-by-sa and MIT license