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 )
--prettyflagi: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
--prettyto, ż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
mongoimportimongoexportnie 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/ mongoimportw 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.exei mongo.exezamieszkuje file =>
C:\MongoDB\Server\3.4\bininny nie będzie działać, mówiąc, że nie recongnize mongoexportpolecenie.
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 jsoni bsonrozszerzenia do /tmp/{DB_NAME}katalogu
mongodumpwyprowadza dane w BSONformacie. Inne odpowiedzi poprawnie określane mongoexportjako właściwe narzędzie.
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminMożna określićhost,port,username,passwordtak i domyślna baza danych uwierzytelniania jestadmin.