28 Verwendung von JSON mit MongoDB

MongoDB ist eine dokumentenorientierte Datenbank, die JSON-ähnliche Syntax für die Interaktion verwendet. Die tatsächliche Speicherung erfolgt jedoch in BSON (Binary JSON). Dies ermöglicht Entwicklern, vertraute JSON-Strukturen zu verwenden, während MongoDB erweiterte Funktionen und Datentypen bietet.


28.1 Einfügen von Dokumenten

Mit der Methode insertOne oder insertMany können Sie Dokumente in eine Sammlung einfügen.

Beispiel:

// Einfügen eines einzelnen Dokuments
db.meineSammlung.insertOne({
  "name": "Max",
  "alter": 28,
  "adresse": {
    "stadt": "Berlin",
    "plz": "10115"
  },
  "hobbies": ["Lesen", "Radfahren"]
});

// Einfügen mehrerer Dokumente
db.meineSammlung.insertMany([
  {
    "name": "Anna",
    "alter": 25,
    "hobbies": ["Kochen", "Laufen"]
  },
  {
    "name": "Tom",
    "alter": 32,
    "hobbies": ["Fotografie", "Reisen"]
  }
]);

28.2 Abfragen von Dokumenten

Die Methode find wird verwendet, um Dokumente aus einer Sammlung abzurufen. Abfragen können einfache oder komplexe Suchkriterien enthalten.

Beispiel:

// Abrufen aller Dokumente
db.meineSammlung.find();

// Abrufen von Dokumenten mit einem bestimmten Namen
db.meineSammlung.find({ "name": "Max" });

// Abrufen von Dokumenten, bei denen das Alter größer als 25 ist
db.meineSammlung.find({ "alter": { $gt: 25 } });

// Abrufen von Dokumenten, die ein bestimmtes Hobby enthalten
db.meineSammlung.find({ "hobbies": "Lesen" });

28.3 Aktualisieren von Dokumenten

MongoDB bietet mehrere Methoden zur Aktualisierung von Dokumenten, darunter updateOne, updateMany und die Verwendung von Operatoren wie $set.

Beispiel:

// Alter des Nutzers "Max" auf 29 setzen
db.meineSammlung.updateOne({ "name": "Max" }, { $set: { "alter": 29 } });

// Ein Hobby hinzufügen
db.meineSammlung.updateOne({ "name": "Max" }, { $push: { "hobbies": "Schwimmen" } });

// Mehrere Dokumente aktualisieren
db.meineSammlung.updateMany({ "alter": { $lt: 30 } }, { $set: { "status": "jung" } });

28.4 Löschen von Dokumenten

Zum Entfernen von Dokumenten werden die Methoden deleteOne oder deleteMany verwendet.

Beispiel:

// Löschen eines einzelnen Dokuments
db.meineSammlung.deleteOne({ "name": "Max" });

// Löschen aller Dokumente mit einem Alter unter 25
db.meineSammlung.deleteMany({ "alter": { $lt: 25 } });

28.5 Arbeiten mit Operatoren

MongoDB bietet zahlreiche Operatoren, um komplexe Abfragen und Manipulationen durchzuführen.

28.5.1 Vergleichsoperatoren

Beispiel:

db.meineSammlung.find({ "alter": { $gte: 25, $lte: 30 } });

28.5.2 Logische Operatoren

Beispiel:

db.meineSammlung.find({
  $or: [{ "name": "Max" }, { "alter": { $gt: 30 } }]
});

28.6 Aggregationen

Für komplexere Datenverarbeitung bietet MongoDB die Aggregations-Framework.

Beispiel:

db.meineSammlung.aggregate([
  { $match: { "alter": { $gte: 25 } } },
  { $group: { _id: "$hobbies", count: { $sum: 1 } } },
  { $sort: { count: -1 } }
]);

Die JSON-ähnliche Syntax in MongoDB erleichtert den Umgang mit Daten erheblich. Funktionen wie Einfügen, Abfragen, Aktualisieren und Löschen können intuitiv ausgeführt werden. Durch die Unterstützung von Operatoren und Aggregationen wird MongoDB zu einem leistungsfähigen Tool für die Verarbeitung strukturierter und halbstrukturierter Daten.