MongoDB-Daten exportieren

MongoDBMongoDBBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labyrinth lernen Sie, wie Sie mithilfe des mongoexport-Werkzeugs MongoDB-Daten im JSON- und CSV-Format exportieren. Sie werden den Schritt-für-Schritt-Prozess des Datenexports, die Auswahl bestimmter Felder und die Formatierung der exportierten Daten erkunden. Darüber hinaus lernen Sie, wie Sie die exportierten Dateien überprüfen, um sicherzustellen, dass die Daten erfolgreich exportiert wurden.

Das Labyrinth umfasst die folgenden Schlüssel-Schritte: Exportieren in JSON, Exportieren in CSV, Auswählen von Exportfeldern, Formatieren von Exportdaten und Überprüfen der exportierten Dateien. Am Ende dieses Labyrinths werden Sie eine solide Vorstellung davon haben, wie Sie MongoDB-Daten effizient in verschiedenen Formaten exportieren, um Ihren Datenverwaltungszwecken gerecht zu werden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb(("MongoDB")) -.-> mongodb/DataImportExportGroup(["Data Import Export"]) mongodb/BasicOperationsGroup -.-> mongodb/create_database_collection("Create Database and Collection") mongodb/BasicOperationsGroup -.-> mongodb/insert_document("Insert Document") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") mongodb/QueryOperationsGroup -.-> mongodb/project_fields("Project Fields") mongodb/DataImportExportGroup -.-> mongodb/import_data_json("Import Data from JSON") mongodb/DataImportExportGroup -.-> mongodb/import_data_csv("Import Data from CSV") subgraph Lab Skills mongodb/create_database_collection -.-> lab-422081{{"MongoDB-Daten exportieren"}} mongodb/insert_document -.-> lab-422081{{"MongoDB-Daten exportieren"}} mongodb/find_documents -.-> lab-422081{{"MongoDB-Daten exportieren"}} mongodb/query_with_conditions -.-> lab-422081{{"MongoDB-Daten exportieren"}} mongodb/project_fields -.-> lab-422081{{"MongoDB-Daten exportieren"}} mongodb/import_data_json -.-> lab-422081{{"MongoDB-Daten exportieren"}} mongodb/import_data_csv -.-> lab-422081{{"MongoDB-Daten exportieren"}} end

Exportieren in JSON

In diesem Schritt lernen Sie, wie Sie MongoDB-Daten in das JSON-Format mit dem mongoexport-Werkzeug exportieren. JSON (JavaScript Object Notation) ist ein leichtgewichtiges, menschenlesbares Datenwechselformat, das weit verbreitet für die Datenaufzeichnung und -übertragung verwendet wird.

Zunächst stellen wir sicher, dass wir einige Daten zum Exportieren haben. Wir beginnen, indem wir die MongoDB-Shell starten und eine Beispielsammlung erstellen:

mongosh

Sobald Sie in der MongoDB-Shell sind, erstellen Sie eine Datenbank und fügen einige Beispiel-Daten hinzu:

use exportlab
db.users.insertMany([
    { name: "Alice", age: 28, email: "[email protected]" },
    { name: "Bob", age: 35, email: "[email protected]" },
    { name: "Charlie", age: 42, email: "[email protected]" }
])
exit

Nun exportieren wir diese Daten in eine JSON-Datei. Wir verwenden den mongoexport-Befehl in der Konsole:

mongoexport --db=exportlab --collection=users --out=~/project/users.json

Überprüfen wir die exportierte Datei:

cat ~/project/users.json

Beispielausgabe:

{"_id":{"$oid":"..."},"name":"Alice","age":28,"email":"[email protected]"}
{"_id":{"$oid":"..."},"name":"Bob","age":35,"email":"[email protected]"}
{"_id":{"$oid":"..."},"name":"Charlie","age":42,"email":"[email protected]"}

Zerlegung des mongoexport-Befehls:

  • --db: Gibt den Datenbanknamen an
  • --collection: Gibt die zu exportierende Sammlung an
  • --out: Definiert den Ausgabedateipfad

Exportieren in CSV

In diesem Schritt lernen Sie, wie Sie MongoDB-Daten in das CSV (Comma-Separated Values)-Format mit dem mongoexport-Werkzeug exportieren. CSV ist ein einfaches Dateiformat, das zur Speicherung tabellarischer Daten verwendet wird und es ermöglicht, die Datei in Tabellenkalkulationsprogrammen wie Excel einfach zu öffnen.

Wir verwenden weiterhin die Datenbank und die Sammlung, die wir im vorherigen Schritt erstellt haben. Zunächst überprüfen wir unsere vorhandenen Daten:

mongosh

In der MongoDB-Shell wechseln wir zur vorhandenen Datenbank und überprüfen die Sammlung:

use exportlab
db.users.find()
exit

Nun exportieren wir die users-Sammlung in eine CSV-Datei. Der wichtigste Unterschied zum JSON-Export ist die --type=csv-Flagge:

mongoexport --db=exportlab --collection=users --type=csv --fields=name,age,email --out=~/project/users.csv

Schauen wir uns den Inhalt der exportierten CSV-Datei an:

cat ~/project/users.csv

Beispielausgabe:

name,age,email
Alice,28,[email protected]
Bob,35,[email protected]
Charlie,42,[email protected]

Zerlegung des mongoexport-Befehls:

  • --type=csv: Gibt das CSV-Exportformat an
  • --fields: Listet die spezifischen Felder auf, die exportiert werden sollen (die Reihenfolge spielt eine Rolle)
  • --out: Definiert den Ausgabedateipfad

Beachten Sie die wichtigsten Unterschiede zum JSON-Export:

  • Wir geben explizit an, welche Felder exportiert werden sollen
  • Die Ausgabe ist im komma-getrennten Format
  • Die erste Zeile enthält die Spaltenüberschriften

Exportfelder auswählen

In diesem Schritt lernen Sie, wie Sie aus Ihrer MongoDB-Sammlung bestimmte Felder selektiv exportieren. Dies ist nützlich, wenn Sie nur bestimmte Informationen aus Ihren Dokumenten extrahieren möchten.

Zunächst fügen wir unseren Sammlungen detailliertere Dokumente hinzu, um das selektive Exportieren zu demonstrieren:

mongosh

In der MongoDB-Shell fügen wir umfangreichere Benutzerdokumente hinzu:

use exportlab
db.users.drop() // Löschen Sie die vorherigen Daten
db.users.insertMany([
    {
        name: "Alice",
        age: 28,
        email: "[email protected]",
        address: {
            city: "New York",
            country: "USA"
        },
        skills: ["Python", "MongoDB", "Data Analysis"]
    },
    {
        name: "Bob",
        age: 35,
        email: "[email protected]",
        address: {
            city: "San Francisco",
            country: "USA"
        },
        skills: ["JavaScript", "React", "Node.js"]
    }
])
exit

Nun exportieren wir nur bestimmte Felder mit verschiedenen Exportmethoden:

  1. Exportieren Sie nur name und email:
mongoexport --db=exportlab --collection=users --type=csv --fields=name,email --out=~/project/users_contact.csv
  1. Exportieren Sie mit JSON, um die geschachtelten Strukturen beizubehalten:
mongoexport --db=exportlab --collection=users --type=json --fields=name,address --out=~/project/users_address.json

Überprüfen wir die exportierten Dateien:

echo "CSV Kontakt-Export:"
cat ~/project/users_contact.csv
echo -e "\nJSON Adress-Export:"
cat ~/project/users_address.json

Beispielausgabe für CSV:

name,email
Alice,[email protected]
Bob,[email protected]

Beispielausgabe für JSON:

{"name":"Alice","address":{"city":"New York","country":"USA"}}
{"name":"Bob","address":{"city":"San Francisco","country":"USA"}}

Wichtige Punkte zur Feldauswahl:

  • Verwenden Sie --fields, um die genauen Felder anzugeben, die Sie exportieren möchten
  • Für geschachtelte Dokumente wird die gesamte geschachtelte Struktur beibehalten
  • CSV-Exporte verflachen geschachtelte Strukturen
  • JSON-Exporte behalten die ursprüngliche Dokumentstruktur bei

Exportdaten formatieren

In diesem Schritt lernen Sie, wie Sie die MongoDB-Datenexports mit zusätzlichen mongoexport-Optionen formatieren und anpassen. Wir werden untersuchen, wie Sie das Ausgabeformat steuern, die Anzahl der exportierten Dokumente begrenzen und Filter anwenden.

Zunächst fügen wir unserer Sammlung noch mehr vielfältige Daten hinzu:

mongosh

In der MongoDB-Shell aktualisieren wir unsere users-Sammlung:

use exportlab
db.users.drop() // Löschen Sie die vorherigen Daten
db.users.insertMany([
    {
        name: "Alice",
        age: 28,
        department: "Engineering",
        salary: 85000,
        active: true
    },
    {
        name: "Bob",
        age: 35,
        department: "Marketing",
        salary: 72000,
        active: true
    },
    {
        name: "Charlie",
        age: 42,
        department: "Engineering",
        salary: 95000,
        active: false
    }
])
exit

Nun untersuchen wir verschiedene Exportformatierungstechniken:

  1. Exportieren mit schöner Formatierung (JSON):
mongoexport --db=exportlab --collection=users --type=json --pretty --out=~/project/users_pretty.json
  1. Exportieren einer begrenzten Anzahl von Dokumenten:
mongoexport --db=exportlab --collection=users --type=csv --fields=name,age,department --limit=2 --out=~/project/users_limited.csv
  1. Exportieren mit Abfragefilter:
mongoexport --db=exportlab --collection=users --type=json --query='{"department":"Engineering"}' --out=~/project/engineering_users.json

Überprüfen wir die exportierten Dateien:

echo "Schöner JSON-Export:"
cat ~/project/users_pretty.json

echo -e "\nBegrenzter CSV-Export:"
cat ~/project/users_limited.csv

echo -e "\nExport von Engineering-Benutzern:"
cat ~/project/engineering_users.json

Wichtige mongoexport-Formatierungsoptionen:

  • --pretty: Formatiert JSON mit Einrückungen für bessere Lesbarkeit
  • --limit: Begrenzt die Anzahl der exportierten Dokumente
  • --query: Filtert Dokumente basierend auf bestimmten Bedingungen
  • --fields: Wählt bestimmte Felder zum Exportieren aus

Beispielausgabe für schönes JSON:

{
    "_id": ObjectId("..."),
    "name": "Alice",
    "age": 28,
    "department": "Engineering",
    "salary": 85000,
    "active": true
}

Exportierte Dateien überprüfen

In diesem letzten Schritt lernen Sie, wie Sie die exportierten MongoDB-Dateien überprüfen und validieren, um die Datenintegrität und den korrekten Exportprozess sicherzustellen. Wir verwenden verschiedene Linux- und MongoDB-Tools, um unsere exportierten Dateien zu überprüfen.

Lassen Sie uns beginnen, indem wir uns die Dateien ansehen, die wir in den vorherigen Schritten exportiert haben:

ls ~/project/

Sie sollten Dateien wie folgende sehen:

  • users.json
  • users.csv
  • users_contact.csv
  • users_pretty.json
  • users_limited.csv
  • engineering_users.json

Nun überprüfen wir diese Dateien mit verschiedenen Methoden:

  1. Überprüfen der Dateigröße und der Zeilenzahl:
echo "Dateigrößen:"
du -h ~/project/users*

echo -e "\nZeilenzahlen:"
wc -l ~/project/users*
  1. Validieren der JSON-Syntax:
python3 -m json.tool ~/project/users_pretty.json > /dev/null

Wenn der Befehl ohne Fehler ausgeführt wird, ist das JSON gültig.

  1. Zählen der exportierten Dokumente:
## Zählen von Dokumenten in JSON-Dateien
echo "JSON-Dokumentzahlen:"
jq -s 'length' ~/project/users.json
jq -s 'length' ~/project/engineering_users.json
  1. Überprüfen der CSV-Struktur:
echo "CSV-Dateistruktur:"
head -n 2 ~/project/users_contact.csv
  1. MongoDB-Validierung:
mongosh

In der MongoDB-Shell vergleichen wir die exportierten Daten mit der ursprünglichen Sammlung:

use exportlab
db.users.count()
exit

Vergleichen Sie diese Anzahl mit der Anzahl der Dokumente in Ihren exportierten Dateien.

Beispiel für die Überprüfungsergebnisse:

Dateigrößen:
4.0K    /home/labex/project/users.json
...

Zeilenzahlen:
3 /home/labex/project/users.json
...

JSON-Dokumentzahlen:
3
2

CSV-Dateistruktur:
name,email
Alice,[email protected]

Wichtige Überprüfungstechniken:

  • Überprüfen der Dateigröße
  • Zählen der Dokumentzeilen
  • Validieren der JSON-Syntax
  • Vergleichen der Dokumentzahlen
  • Überprüfen des Dateiinhalts

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie MongoDB-Daten in das JSON- und CSV-Format mit dem mongoexport-Werkzeug exportieren. Für den JSON-Export haben Sie eine Beispiel-Datenbank und -Sammlung erstellt und dann den mongoexport-Befehl verwendet, um die Daten in eine JSON-Datei zu exportieren. Sie haben auch den Inhalt der exportierten Datei überprüft. Für den CSV-Export haben Sie einen ähnlichen Prozess verfolgt, indem Sie die gleichen Daten in eine CSV-Datei exportiert haben, die in Tabellenkalkulationsprogrammen leicht geöffnet werden kann. Die wichtigsten Schritte, die behandelt wurden, waren das Auswählen der Datenbank und der Sammlung, die Definition des Ausgabedateipfads und das Verständnis der verschiedenen Optionen im mongoexport-Befehl.