Czy istnieje sposób na zrzucenie kolekcji mongo do formatu json? Czy to w powłoce, czy przy użyciu sterownika java, szukam tego z najlepszą wydajnością.
Czy istnieje sposób na zrzucenie kolekcji mongo do formatu json? Czy to w powłoce, czy przy użyciu sterownika java, szukam tego z najlepszą wydajnością.
Odpowiedzi:
Mongo zawiera narzędzie mongoexport (zobacz dokumentację), które może zrzucić kolekcję. To narzędzie korzysta z natywnego libmongoclient i jest prawdopodobnie najszybszą metodą.
mongoexport -d <database> -c <collection_name>
Pomocne również:
-o
: zapisz wyjście do pliku, w przeciwnym razie używane jest standardowe wyjście ( docs )
--jsonArray
: generuje prawidłowy dokument json zamiast jednego obiektu json w wierszu ( docs )
--pretty
: wyświetla sformatowane json ( dokumenty )
--pretty
flagi:mongoexport -d mydatabase -c mycollection --pretty
mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
--pretty
to, że zniknął w wersji 2.6.10.
Użyj mongoexport / mongoimport, aby zrzucić / przywrócić kolekcję:
Eksportuj plik JSON :
mongoexport --db <database-name> --collection <collection-name> --out output.json
Importuj plik JSON :
mongoimport --db <database-name> --collection <collection-name> --file input.json
OSTRZEŻENIE
mongoimport
imongoexport
nie przechowuj niezawodnie wszystkich bogatych typów danych BSON, ponieważ JSON może reprezentować tylko podzbiór typów obsługiwanych przez BSON. W rezultacie dane eksportowane lub importowane za pomocą tych narzędzi mogą stracić pewną miarę wierności.
Ponadto http://bsonspec.org/
BSON został zaprojektowany tak, aby był szybki w kodowaniu i dekodowaniu. Na przykład liczby całkowite są przechowywane jako 32 (lub 64)-bitowe liczby całkowite, więc nie trzeba ich analizować do iz tekstu. Zużywa to więcej miejsca niż JSON dla małych liczb całkowitych, ale jest znacznie szybsze do przeanalizowania.
Oprócz zwartości BSON dodaje dodatkowe typy danych niedostępne w JSON, w szczególności typy danych BinData i Date.
mongoexport
/ mongoimport
w obie strony?
Oto moje polecenie w celach informacyjnych:
mongoexport --db AppDB --collection files --pretty --out output.json
W systemie Windows 7 (MongoDB 3.4), trzeba przesunąć cmd do miejsca, gdzie mongod.exe
i mongo.exe
zamieszkuje file =>
C:\MongoDB\Server\3.4\bin
inny nie będzie działać, mówiąc, że nie recongnize mongoexport
polecenie.
Z dokumentacji Mongo:
Narzędzie mongoexport pobiera kolekcję i eksportuje do formatu JSON lub CSV. Możesz określić filtr dla zapytania lub listę pól do wyprowadzenia
Przeczytaj więcej tutaj: http://www.mongodb.org/display/DOCS/mongoexport
Jeśli chcesz zrzucić wszystkie kolekcje, uruchom to polecenie:
mongodump -d {DB_NAME} -o /tmp
Wygeneruje wszystkie dane kolekcji json
i bson
rozszerzenia do /tmp/{DB_NAME}
katalogu
mongodump
wyprowadza dane w BSON
formacie. Inne odpowiedzi poprawnie określane mongoexport
jako właściwe narzędzie.
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase admin
Można określićhost
,port
,username
,password
tak i domyślna baza danych uwierzytelniania jestadmin
.