MongoDB Academy · Lektion

mongoexport: Eksport af samlinger til filer

De lærende vil eksportere en samling i JSON- eller CSV-format ved hjælp af mongoexport, vælge bestemte felter og anvende filtre.

Lektion 2 af 413 trin

mongoexport: Eksport af samlinger til filer er en gratis MongoDB Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i MongoDB Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. MongoDB Academy-kurset indeholder 4 lektioner i alt.

Hvad er mongoexport?

mongoexport er et kommandolinjeværktøj fra MongoDB Database Tools, som læser dokumenter fra en collection og skriver dem til en fil. Det eksporterer data i JSON-format (JSONL-format, ét dokument pr. linje) eller CSV-format. Typiske anvendelser er at oprette sikkerhedskopier til analyse, migrere data til et andet system, dele snapshots til fejlfinding eller udfylde andre miljøer med et udsnit fra produktionen.

Grundlæggende JSON-eksport

Den enkleste eksportkommando angiver kildedatabasen, collectionen og outputfilen. Som standard skriver mongoexport JSONL—ét JSON-dokument pr. linje—hvilket er velegnet til streaming af store eksporter og genimport med mongoimport. Brug --out til at navngive outputfilen; uden denne parameter udskrives dokumenterne til stdout.

# Export the 'products' collection to JSONL
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection products \
  --out products_export.json

# Each line in the output file is one document:
# {"_id":{"$oid":"..."},"name":"Widget","price":9.99}
# {"_id":{"$oid":"..."},"name":"Gadget","price":19.99}

Eksport til CSV-format

Brug --type csv til at eksportere som kommaseparerede værdier. CSV-eksporter kræver, at du angiver de felter, der skal med, ved hjælp af --fields—mongoexport kan ikke automatisk udlede alle felter fra en collection med fleksibelt skema. Den første række i CSV-outputtet indeholder kolonneoverskrifter, der svarer til de felter, du angav.

# Export selected fields as CSV
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection products \
  --type csv \
  --fields 'name,price,category,rating' \
  --out products_export.csv

# Output:
# name,price,category,rating
# Widget,9.99,tools,4.5
# Gadget,19.99,electronics,4.2

Filtrering af dokumenter til eksport

Brug flaget --query sammen med et JSON-filterdokument for kun at eksportere de dokumenter, der opfylder en betingelse, i stedet for hele collectionen. Det er nyttigt til at udtrække et udsnit—f.eks. alle ordrer fra en bestemt måned eller alle brugere med en bestemt rolle—uden at eksportere data, du ikke har brug for.

# Export only shipped orders from January 2024
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection orders \
  --query '{"status":"shipped","createdAt":{"$gte":{"$date":"2024-01-01T00:00:00Z"},"$lt":{"$date":"2024-02-01T00:00:00Z"}}}' \
  --out january_orders.json

Valg af bestemte felter til eksport

Brug --fields (eller -f) sammen med en kommasepareret liste over feltnavne, der skal med i outputtet. Felter, der ikke er angivet, udelades. Det svarer til en inklusionsprojektion i en find-forespørgsel. Kombineret med --query kan du eksportere præcis det dataudsnit, du har brug for, holde filstørrelserne små og kun dele relevante felter.

# Export only name, email, and createdAt for active users
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection users \
  --query '{"isActive":true}' \
  --fields 'name,email,createdAt' \
  --out active_users.json

# Sensitive fields like passwordHash are automatically excluded

Sortering af eksportoutputtet

Brug --sort sammen med et JSON-sorteringsdokument for at eksportere dokumenter i en bestemt rækkefølge. Det er nyttigt, når du har brug for, at outputfilen er sorteret til efterfølgende behandling—for eksempel ved at eksportere hændelser i kronologisk rækkefølge til afspilning eller brugere alfabetisk til en rapport.

# Export events in chronological order
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection events \
  --sort '{"timestamp":1}' \
  --out events_sorted.json

Begrænsning af antallet af eksporterede dokumenter

Brug --limit til højst at eksportere N dokumenter og --skip til at springe de første N dokumenter over. Med disse flag kan du eksportere et udsnit—for eksempel de 1.000 seneste ordrer—eller eksportere i portioner ved at bladre gennem collectionen med gentagne kald og forskydninger angivet med skip. Brug dem sammen med --sort for at gøre begrænsningen meningsfuld.

# Export the 100 most recently created products (sample for testing)
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection products \
  --sort '{"createdAt":-1}' \
  --limit 100 \
  --out products_sample.json

Extended JSON sammenlignet med afslappet tilstand

mongoexport bruger som standard Extended JSON, der anvender særlige wrapperobjekter til at repræsentere BSON-typer, som ikke findes naturligt i JSON—for eksempel {"$oid":"..."} for ObjectId og {"$date":"..."} for datoer. Brug --relaxed til at eksportere afslappet Extended JSON, hvor datoer bliver til ISO-strenge, og tal er almindelige JSON-tal—det er mere læsbart, men medfører tab af noget typepræcision ved genimport.

# Default (Canonical Extended JSON)
# {"_id":{"$oid":"65a..."},"price":{"$numberDecimal":"9.99"}}

# Relaxed Extended JSON — more human-readable
mongoimport \
  --uri 'mongodb://localhost:27017/myapp' \
  --collection products \
  --relaxed \
  --out products_relaxed.json
# {"_id":"65a...","price":9.99}

Eksport fra MongoDB Atlas

Brug Atlas-clusterets SRV-forbindelsesstreng i flaget --uri til at eksportere fra et Atlas-cluster. Atlas kræver TLS (det aktiveres automatisk med SRV-URI'er). For meget store Atlas-collections bør du bruge Atlas-brugerfladens knap 'Export Collection' eller Atlas Data Federation til analytiske eksporter til S3 eller andre datasøer.

# Export from Atlas cluster
MONGO_URI='mongodb+srv://user:password@cluster0.abc.mongodb.net/myapp'

mongoimport \
  --uri "$MONGO_URI" \
  --collection orders \
  --query '{"status":"completed"}' \
  --out completed_orders.json

mongoexport sammenlignet med mongodump

Vælg det rigtige værktøj til din anvendelse:

  • mongoexport: producerer læsbart JSON eller CSV; egner sig til deling og analyse af data samt selektiv migration; kan filtrere og projicere
  • mongodump: producerer binær BSON; sikkerhedskopierer hele collections eller databaser; er hurtigere og bevarer alle BSON-typer uden tab; er ikke læsbart for mennesker
Til sikkerhedskopier bør du foretrække mongodump. Til datadeling eller selektive eksporter skal du bruge mongoexport.

Videresendelse af eksportoutput til en anden kommando

Uden flaget --out udskriver mongoexport til stdout, så du kan sammensætte Unix-pipes. Du kan videresende outputtet til wc -l for at tælle dokumenter, til grep for at filtrere linjer, til jq for JSON-behandling eller til en helt anden kommando. Det gør mongoexport til en fleksibel komponent i scripts til datapipelines.

# Count documents exported
mongoimport --uri '...' --collection products | wc -l

# Pipe to jq to extract just product names
mongoimport --uri '...' --collection products | jq -r '.name'

# Compress while exporting
mongoimport --uri '...' --collection products | gzip > products.json.gz

Hurtigt tjek

Test din forståelse af begreberne MongoDB og NoSQL-databaser fra denne lektion.

Opsummering af lektionen

I denne lektion lærte du: mongoexport eksporterer JSONL eller CSV fra en collection med valgfri filtrering, feltudvælgelse og sortering, --query lader dig eksportere et målrettet udsnit af dokumenter, og mongodump foretrækkes til komplette sikkerhedskopier, mens mongoexport er bedre til selektive, læsbare eksporter. Nu skal vi se nærmere på mongodump og mongorestore til komplette binære sikkerhedskopier af databaser.

Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “mongoexport: Eksport af samlinger til filer” gratis?

Ja — hele teksten til “mongoexport: Eksport af samlinger til filer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af MongoDB Academy-kurset, skal du opgradere til CoddyKit PRO. MongoDB Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “mongoexport: Eksport af samlinger til filer”?

De lærende vil eksportere en samling i JSON- eller CSV-format ved hjælp af mongoexport, vælge bestemte felter og anvende filtre. Du øver dig i MongoDB Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på MongoDB Academy?

Der kræves ingen tidligere erfaring. MongoDB Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “mongoexport: Eksport af samlinger til filer”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne MongoDB Academy-lektion?

Ja. Alle MongoDB Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. mongoimport: Indlæsning af JSON- og CSV-filer
  2. mongoexport: Eksport af samlinger til filer
  3. mongodump og mongorestore til komplette sikkerhedskopier
  4. Indlæsning af testdata med Node.js-scripts
← Tilbage til MongoDB Academy