2013-08-25 18 views
15

sono nuovo nel database mongodb. Ho creato un'applicazione in cui i dati vengono archiviati come file JSON. quello che voglio fare è importare quei dati in mongodb e quindi visualizzarli al prompt dei comandi. Ho già provato seguenti comandi ma l'errore sta visualizzando Failure parsing josn near: } è il mio comandamento:come importare file json in mongodb?

mongoimport -d mydb -c mydb --type json --file glossary.json --headerline

ho messo il file JSON in c: \ MongoDB \ bin \ glossary.json thanx i advace.

{ 
"glossary": { 
    "title": "example glossary", 
    "GlossDiv": { 
     "title": "S", 
     "GlossList": { 
      "GlossEntry": { 
       "ID": "SGML", 
       "SortAs": "SGML", 
       "GlossTerm": "Standard Generalized Markup Language", 
       "Acronym": "SGML", 
       "Abbrev": "ISO 8879:1986", 
       "GlossDef": { 
        "para": "A meta-markup language, used to create markup languages such as DocBook.", 
        "GlossSeeAlso": ["GML", "XML"] 
       }, 
       "GlossSee": "markup" 
      } 
     } 
    } 
} 
} 

risposta

20

Il JSON sembra avere solo un singolo oggetto. È previsto un formato come {..},{..}.

Quindi, utilizzare --jsonArray opzione:

mongoimport -d mydb -c mycollection --jsonArray < glossary.json 

L'altra opzione è quella di formattare il documento di origine come MongoDB si aspetta che sia. Questo renderà il caricamento molto più veloce.

+0

thanx S.D. ma mostra ancora lo stesso errore – arglee

+0

@ user2511142 Ho usato l'opzione '--jsonArray', ha funzionato per il tuo file. Aggiornato nella risposta. –

+0

thanx @ S.D. sta funzionando .. – arglee

3

Se si dispone di una raccolta di grandi dimensioni, --jsonArray richiede molto tempo per l'importazione. Avevo circa 10 documenti al secondo. Se hai un file .json correttamente formattato, puoi semplicemente usare --file. Sto ottenendo circa 6000 documenti al secondo ora.

Buona cosa non mi sono accontentato della prima opzione!