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ą.
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 jest admin.
Max Peng
Odpowiedzi:
177
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 )
Użyj opcji -d, aby określić, której bazy danych użyć.
Reimund,
8
Jeśli chcesz mieć ładny wydrukowany JSON (np. W celu sprawdzenia kolekcji podczas tworzenia), użyj --prettyflagi:mongoexport -d mydatabase -c mycollection --pretty
Max Truxa
6
Jeśli Mongo znajduje się na innym hoście, oto przykład z dokumentu Mongo mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
What Would Be Cool
Wygląda na --prettyto, że zniknął w wersji 2.6.10.
icedwater
115
Użyj mongoexport / mongoimport, aby zrzucić / przywrócić kolekcję:
OSTRZEŻENIE
mongoimporti mongoexportnie 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.
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.
Czy jest przykładem tego, co „bogata dane BSON” nie przetrwać mongoexport/ mongoimportw obie strony?
andrewdotn
1
Dodaje obsługę typów danych, takich jak data i binarne, które nie są obsługiwane w formacie JSON. Ponadto, szybsze kodowanie i dekodowanie bsonspec.org
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.
Czy ktoś zna program formatujący, który sformatuje zwykły json do głupiego formatu „pojedynczej linii bez przecinka”, którego MongoDB oczekuje podczas importowania?
conor909
3
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
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
.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ą.
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 )źródło
--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
Ponadto http://bsonspec.org/
źródło
mongoexport
/mongoimport
w obie strony?Oto moje polecenie w celach informacyjnych:
W systemie Windows 7 (MongoDB 3.4), trzeba przesunąć cmd do miejsca, gdzie
mongod.exe
imongo.exe
zamieszkuje file =>C:\MongoDB\Server\3.4\bin
inny nie będzie działać, mówiąc, że nie recongnizemongoexport
polecenie.źródło
Z dokumentacji Mongo:
Przeczytaj więcej tutaj: http://www.mongodb.org/display/DOCS/mongoexport
źródło
Jeśli chcesz zrzucić wszystkie kolekcje, uruchom to polecenie:
Wygeneruje wszystkie dane kolekcji
json
ibson
rozszerzenia do/tmp/{DB_NAME}
kataloguźródło
mongodump
wyprowadza dane wBSON
formacie. Inne odpowiedzi poprawnie określanemongoexport
jako właściwe narzędzie.