MongoDB unterstützt die grundlegenden CRUD-Operationen, um Daten in einer Datenbank zu erstellen, zu lesen, zu aktualisieren und zu löschen. Hier finden Sie eine detaillierte Anleitung zur Implementierung dieser Operationen.
Die Methode insertOne() fügt ein einzelnes Dokument in
eine Sammlung ein.
db.meineSammlung.insertOne({
name: "Max",
alter: 30,
beruf: "Entwickler"
});Ergebnis: Ein Objekt mit der automatisch generierten
_id.
Die Methode insertMany() fügt mehrere Dokumente
gleichzeitig ein.
db.meineSammlung.insertMany([
{ name: "Anna", alter: 25, beruf: "Designer" },
{ name: "Tom", alter: 35, beruf: "Manager" }
]);Optionale Parameter: -
writeConcern: Legt das
Schreibsicherheitsniveau fest. - ordered:
Bestimmt, ob die Einfügungen nacheinander (standardmäßig
true) oder parallel (false) ausgeführt
werden.
Die Methode find() ruft alle Dokumente in einer Sammlung
ab.
db.meineSammlung.find();Sie können Abfragen mit JSON-ähnlicher Syntax definieren:
db.meineSammlung.find({ beruf: "Entwickler" });Bestimmen Sie, welche Felder zurückgegeben werden sollen:
db.meineSammlung.find(
{ beruf: "Entwickler" },
{ name: 1, _id: 0 }
);Verwenden Sie findOne(), um nur das erste passende
Dokument zu erhalten:
db.meineSammlung.findOne({ name: "Max" });Mit updateOne() können Sie ein einzelnes Dokument
aktualisieren:
db.meineSammlung.updateOne(
{ name: "Max" },
{ $set: { beruf: "Senior Entwickler" } }
);Mit updateMany() können Sie mehrere Dokumente
gleichzeitig aktualisieren:
db.meineSammlung.updateMany(
{ beruf: "Manager" },
{ $set: { abteilung: "Vertrieb" } }
);$set: Aktualisiert oder fügt ein Feld hinzu.$unset: Entfernt ein Feld.$inc: Erhöht einen numerischen Wert.Beispiel:
db.meineSammlung.updateOne(
{ name: "Anna" },
{ $inc: { alter: 1 } }
);Die Methode deleteOne() entfernt ein einzelnes
Dokument:
db.meineSammlung.deleteOne({ name: "Max" });Die Methode deleteMany() entfernt alle passenden
Dokumente:
db.meineSammlung.deleteMany({ beruf: "Manager" });| Operation | Methode | Beschreibung |
|---|---|---|
| Create | insertOne() |
Fügt ein einzelnes Dokument ein. |
insertMany() |
Fügt mehrere Dokumente ein. | |
| Read | find() |
Ruft alle passenden Dokumente ab. |
findOne() |
Ruft ein einzelnes passendes Dokument ab. | |
| Update | updateOne() |
Aktualisiert ein einzelnes Dokument. |
updateMany() |
Aktualisiert mehrere Dokumente. | |
| Delete | deleteOne() |
Löscht ein einzelnes Dokument. |
deleteMany() |
Löscht mehrere Dokumente. |
MongoDB bietet durch diese Methoden eine intuitive Möglichkeit, mit Dokumenten zu arbeiten. Verwenden Sie Filter und Operatoren, um Abfragen und Änderungen präzise zu steuern.
Das Abfragen von Daten in MongoDB ist flexibel und leistungsstark. MongoDB bietet Methoden und Operatoren, um Daten präzise und effizient abzurufen.
db.meineSammlung.find();db.meineSammlung.find({ typ: "KI" });db.meineSammlung.find({}, { name: 1, typ: 1, _id: 0 });Das _id-Feld wird standardmäßig zurückgegeben. Um es
auszuschließen, setzen Sie _id: 0.
MongoDB bietet Operatoren zur Definition komplexer Abfragebedingungen.
$gt: Größer als$gte: Größer oder gleich$lt: Kleiner als$lte: Kleiner oder gleich$ne: Ungleichdb.meineSammlung.find({ alter: { $gt: 30 } });$or: Mindestens eine Bedingung muss
erfüllt sein.$and: Alle Bedingungen müssen erfüllt
sein.$not: Negiert eine Bedingung.db.meineSammlung.find({
$or: [{ alter: { $lt: 20 } }, { typ: "KI" }]
});$in: Werte aus einer Liste$all: Alle Werte müssen vorhanden
sein$size: Länge eines Arraysdb.meineSammlung.find({ hobbies: { $in: ["Lesen", "Schreiben"] } });Mit der Punkt-Notation greifen Sie auf Felder in eingebetteten Dokumenten zu:
db.meineSammlung.find({ "adresse.stadt": "Berlin" });db.meineSammlung.find().sort({ name: 1 }); // Aufsteigend sortieren
db.meineSammlung.find().sort({ name: -1 }); // Absteigend sortierendb.meineSammlung.find().limit(5);db.meineSammlung.find().skip(10);db.meineSammlung.find().sort({ alter: -1 }).limit(10).skip(5);find() gibt einen Cursor zurück, der die Ergebnisse
iterativ abrufen kann.
whileconst cursor = db.meineSammlung.find();
while (cursor.hasNext()) {
printjson(cursor.next());
}forEachdb.meineSammlung.find().forEach(dokument => printjson(dokument));db.meineSammlung.countDocuments({ typ: "KI" });db.meineSammlung.distinct("typ");Das Aggregations-Framework ermöglicht komplexe Datenanalysen und Transformationen.
db.meineSammlung.aggregate([
{ $match: { typ: "KI" } },
{ $group: { _id: "$typ", durchschnittAlter: { $avg: "$alter" } } }
]);db.meineSammlung.find(
{ typ: "KI", alter: { $gte: 25 } },
{ name: 1, alter: 1, _id: 0 }
).sort({ alter: -1 }).limit(10);In MongoDB können Daten flexibel und effizient aktualisiert werden. Mit den Methoden und Operatoren für Updates lassen sich gezielte Änderungen an einzelnen oder mehreren Dokumenten vornehmen. Hier sind die wichtigsten Konzepte und Beispiele.
updateOne()Aktualisiert das erste Dokument, das die Kriterien erfüllt.
db.meineSammlung.updateOne(
{ name: "Max" },
{ $set: { beruf: "Senior Entwickler" } }
);updateMany()Aktualisiert alle Dokumente, die die Kriterien erfüllen.
db.meineSammlung.updateMany(
{ beruf: "Entwickler" },
{ $set: { abteilung: "Technik" } }
);replaceOne()Ersetzt ein ganzes Dokument durch ein neues.
db.meineSammlung.replaceOne(
{ name: "Max" },
{ name: "Max Mustermann", beruf: "Manager", alter: 40 }
);MongoDB bietet leistungsstarke Operatoren, um Updates präzise durchzuführen.
$setdb.meineSammlung.updateOne(
{ name: "Max" },
{ $set: { beruf: "Manager" } }
);$unsetdb.meineSammlung.updateOne(
{ name: "Max" },
{ $unset: { abteilung: "" } }
);$incdb.meineSammlung.updateOne(
{ name: "Max" },
{ $inc: { alter: 1 } }
);$pushdb.meineSammlung.updateOne(
{ name: "Max" },
{ $push: { projekte: "Neues Projekt" } }
);$pulldb.meineSammlung.updateOne(
{ name: "Max" },
{ $pull: { projekte: "Altes Projekt" } }
);Wenn ein Dokument nicht existiert, kann es durch einen Upsert
erstellt werden. Aktivieren Sie dies mit der Option
{ upsert: true }:
db.meineSammlung.updateOne(
{ name: "Anna" },
{ $set: { beruf: "Designer", alter: 28 } },
{ upsert: true }
);db.meineSammlung.updateMany(
{ abteilung: "Technik" },
{
$set: { status: "aktiv" },
$inc: { anzahlMitarbeiter: 5 },
$push: { tags: "neuesTag" }
}
);$addToSetFügt ein Element zu einem Array hinzu, wenn es noch nicht vorhanden ist.
db.meineSammlung.updateOne(
{ name: "Max" },
{ $addToSet: { projekte: "Innovationsprojekt" } }
);db.meineSammlung.updateOne(
{ "adresse.stadt": "Berlin" },
{ $set: { "adresse.postleitzahl": "10115" } }
);upsert: Führt ein Insert durch, falls
kein Dokument die Kriterien erfüllt.arrayFilters: Ermöglicht das gezielte
Aktualisieren von Elementen in Arrays.Beispiel mit arrayFilters:
db.meineSammlung.updateOne(
{ projekte: { $elemMatch: { status: "offen" } } },
{ $set: { "projekte.$[elem].status": "abgeschlossen" } },
{ arrayFilters: [{ "elem.status": "offen" }] }
);MongoDB bietet leistungsfähige und intuitive Methoden zum Löschen von Daten. Dabei können einzelne oder mehrere Dokumente aus einer Sammlung entfernt werden, abhängig von den Abfragekriterien.
Die Methode deleteOne() löscht das erste Dokument, das
den Abfragekriterien entspricht:
db.meineSammlung.deleteOne({ name: "Max" });Die Methode deleteMany() entfernt alle Dokumente, die
den Abfragekriterien entsprechen:
db.meineSammlung.deleteMany({ typ: "Archiv" });Um alle Dokumente aus einer Sammlung zu entfernen, ohne die Sammlung selbst zu löschen:
db.meineSammlung.deleteMany({});Vor dem Löschen empfiehlt es sich, die Abfrage mit
find() zu überprüfen, um sicherzustellen, dass die
richtigen Dokumente ausgewählt werden:
db.meineSammlung.find({ typ: "Archiv" });Bevor Sie umfangreiche Löschvorgänge durchführen, erstellen Sie ein Backup der Datenbank, um Datenverluste zu vermeiden.
// Überprüfen, ob die Sammlung nicht leer ist
if (db.meineSammlung.countDocuments({}) > 0) {
print("Backup empfohlen vor dem Löschen von Daten");
// Abfrage testen
print("Zu löschende Dokumente:");
db.meineSammlung.find({ typ: "Archiv" }).forEach(doc => printjson(doc));
// Löschen durchführen
db.meineSammlung.deleteMany({ typ: "Archiv" });
// Überprüfen der verbleibenden Dokumente
print("Verbleibende Dokumente: " + db.meineSammlung.countDocuments({}));
} else {
print("Die Sammlung ist leer oder existiert nicht.");
}Wenn Sie eine gesamte Sammlung entfernen möchten, einschließlich
ihrer Indexe, verwenden Sie die Methode drop():
db.meineSammlung.drop();Achtung: Diese Aktion löscht unwiderruflich alle Daten und Indexe der Sammlung.
deleteOne(), wenn
möglich: Reduziert das Risiko unbeabsichtigter
Massendatenverluste.MongoDB stellt mit deleteOne() und
deleteMany() effektive Methoden bereit, um Daten gezielt zu
löschen. Die sorgfältige Überprüfung der Abfragen und das Erstellen von
Backups sind essenziell, um Datenverluste zu vermeiden und eine hohe
Datenintegrität zu gewährleisten.