2013-08-25 13 views
15

Jestem nowy w bazie danych mongodb. i tworzenie aplikacji, w której przechowywany jest plik json. co chcę zrobić, to zaimportować te dane do mongodb, a następnie wyświetlić je w wierszu polecenia. Próbowałem już następujące polecenia, ale błąd jest wyświetlany Failure parsing josn near: } moje polecenie brzmi:jak zaimportować plik json w mongodb?

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

mogę umieścić plik json w katalogu 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" 
      } 
     } 
    } 
} 
} 

Odpowiedz

20

Twój JSON wydaje się mieć tylko jeden obiekt. Pożądany jest format podobny do {..},{..}.

więc używać --jsonArray opcję:

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

Inną opcją jest formatowanie dokumentu źródłowego jak MongoDB spodziewa się, że będzie. To sprawi, że ładowanie będzie znacznie szybsze.

+0

thanx S.D. ale wciąż pokazuje ten sam błąd – arglee

+0

@ user2511142 Użyłem opcji '--jsonArray', działało dla twojego pliku. Zaktualizowano w odpowiedzi. –

+0

thanx @ S.D. to działa .. – arglee

3

Jeśli masz dużą kolekcję, importowanie wymaga bardzo długiego czasu --jsonArray. Otrzymywałem około 10 dokumentów/sekundę. Jeśli masz poprawnie sformatowany plik .json, możesz zamiast tego użyć numeru --file. Dostaję teraz około 6000 dokumentów/sekundę.

Dobrze, że nie zadowalam się pierwszą opcją!

Powiązane problemy