Das Einfügen von Daten in MongoDB wird oft als “Create” innerhalb der CRUD-Operationen (Create, Read, Update, Delete) bezeichnet. Hier erfahren Sie, wie Sie Daten in MongoDB einfügen können.
Um ein einzelnes Dokument in eine Sammlung einzufügen, verwenden Sie
die insertOne() Methode:
const neuesDokument = {
name: "ChatGPT",
typ: "KI"
};
db.meineSammlung.insertOne(neuesDokument);Nach erfolgreicher Ausführung gibt diese Methode ein Ergebnisobjekt
zurück, das Informationen über den Einfügevorgang enthält,
einschließlich der _id des eingefügten Dokuments.
Um mehrere Dokumente gleichzeitig in eine Sammlung einzufügen,
verwenden Sie die insertMany() Methode:
const dokumente = [
{ name: "ChatGPT", typ: "KI" },
{ name: "OpenAI", typ: "Organisation" },
{ name: "MongoDB", typ: "Datenbank" }
];
db.meineSammlung.insertMany(dokumente);Wie bei insertOne() gibt diese Methode ein
Ergebnisobjekt zurück, das Informationen über den Einfügevorgang
enthält, einschließlich der _id-Werte der eingefügten
Dokumente.
_id-GenerierungWenn Sie beim Einfügen eines Dokuments keinen _id-Wert
angeben, generiert MongoDB automatisch einen eindeutigen
_id-Wert vom Typ ObjectId. Der
_id-Wert ist der primäre Schlüssel für Dokumente in einer
Sammlung und garantiert Eindeutigkeit innerhalb dieser Sammlung.
Beide Einfügemethoden (insertOne() und
insertMany()) unterstützen optionale Parameter, die das
Verhalten des Einfügens beeinflussen können. Zum Beispiel:
Da der _id-Wert in einer Sammlung eindeutig sein muss,
wird beim Versuch, ein Dokument mit einer bereits vorhandenen
_id einzufügen, ein Fehler ausgelöst. In solchen Fällen
müssen Sie sicherstellen, dass Sie entweder eindeutige
_id-Werte bereitstellen oder MongoDB die
_id-Werte automatisch generieren lassen.
In MongoDB können Sie Daten mit den Methoden insertOne()
für einzelne Dokumente und insertMany() für mehrere
Dokumente hinzufügen. Während MongoDB automatisch eindeutige
_id-Werte generiert, wenn sie nicht bereitgestellt werden,
müssen Sie sicherstellen, dass Duplikate vermieden werden, um
Einfügefehler zu verhindern. Es stehen auch optionale Parameter zur
Verfügung, um das Einfügeverhalten anzupassen.
Daten in MongoDB zu aktualisieren oder zu ändern, ist ein essenzieller Vorgang, um die Relevanz und Genauigkeit von Daten in der Datenbank sicherzustellen. MongoDB bietet verschiedene Methoden und Operatoren, um das Aktualisieren von Daten zu erleichtern.
Die Methode updateOne() findet das erste Dokument, das
die angegebenen Kriterien erfüllt, und aktualisiert es:
db.meineSammlung.updateOne(
{ name: "ChatGPT" },
{ $set: { typ: "Sprachmodell" } }
);Die Methode updateMany() aktualisiert alle Dokumente,
die den angegebenen Kriterien entsprechen:
db.meineSammlung.updateMany(
{ typ: "KI" },
{ $set: { status: "aktiv" } }
);Die Methode replaceOne() ersetzt ein Dokument durch ein
anderes:
db.meineSammlung.replaceOne(
{ name: "ChatGPT" },
{ name: "ChatGPT", typ: "Neues Modell" }
);MongoDB stellt verschiedene Operatoren bereit, die bei Update-Vorgängen verwendet werden können:
$set: Setzt den Wert eines Feldes.$inc: Erhöht den Wert eines Feldes um einen angegebenen
Betrag.$push: Fügt einem Array-Feld einen Wert hinzu.$pull: Entfernt einen Wert aus einem Array-Feld.Beispiel:
db.meineSammlung.updateOne(
{ name: "OpenAI" },
{ $inc: { anzahlModelle: 1 } }
);Ein “Upsert” ist eine Kombination aus “Update” und “Insert”. Wenn das
spezifizierte Dokument existiert, wird es aktualisiert. Andernfalls wird
ein neues Dokument eingefügt. Dies wird durch die Option
{ upsert: true } ermöglicht:
db.meineSammlung.updateOne(
{ name: "Neues Modell" },
{ $set: { typ: "KI" } },
{ upsert: true }
);MongoDB bietet vielfältige Möglichkeiten, Daten zu aktualisieren, von einfachen Updates über das Aktualisieren mehrerer Dokumente bis hin zum Ersetzen ganzer Dokumente. Durch den Einsatz spezieller Update-Operatoren kann das gewünschte Verhalten präzise gesteuert werden. Upserts ermöglichen das Kombinieren von Aktualisierungs- und Einfügevorgängen.
Das Löschen von Daten ist in manchen Fällen erforderlich, um die Datenintegrität und -relevanz in einer Datenbank sicherzustellen. MongoDB bietet Methoden, um dieses Ziel effizient und sicher zu erreichen.
Die Methode deleteOne() findet das erste Dokument, das
den angegebenen Kriterien entspricht, und löscht es:
db.meineSammlung.deleteOne({ name: "ChatGPT" });Mit der Methode deleteMany() können Sie alle Dokumente
löschen, die den angegebenen Kriterien entsprechen:
db.meineSammlung.deleteMany({ typ: "KI" });Es ist wichtig, beim Löschen von Daten Vorsicht walten zu lassen, da dies nicht rückgängig gemacht werden kann. Es ist empfehlenswert, vor größeren Löschaktionen ein Backup der Datenbank zu erstellen.
MongoDB bietet Methoden zum Löschen einzelner oder mehrerer Dokumente. Es ist entscheidend, beim Löschen von Daten sorgfältig vorzugehen, um unbeabsichtigte Datenverluste zu vermeiden. Ein Backup vor größeren Löschaktionen wird dringend empfohlen.
Das Abfragen von Daten ist ein wesentlicher Aspekt von Datenbankoperationen. MongoDB bietet eine Vielzahl von Methoden und Operatoren, um Daten effizient und flexibel abzurufen.
Um alle Dokumente aus einer Sammlung abzurufen, verwenden Sie die
Methode find() ohne jegliche Argumente:
db.meineSammlung.find();Um nach spezifischen Kriterien zu suchen, geben Sie ein Abfrageobjekt an:
db.meineSammlung.find({ typ: "KI" });Mit Hilfe der Projektions-Option können Sie auswählen, welche Felder im Ergebnis angezeigt werden sollen:
// Nur das 'name'-Feld anzeigen
db.meineSammlung.find({}, { name: 1 });MongoDB unterstützt eine Vielzahl von Abfrageoperatoren, um komplexe Kriterien zu definieren:
$gt: Größer als$lt: Kleiner als$in: Eines der Werte in einem ArrayBeispiel:
// Findet alle Dokumente, bei denen der Wert von 'alter' größer als 20 ist
db.meineSammlung.find({ alter: { $gt: 20 } });Sie können Ihre Ergebnisse sortieren, die Anzahl der zurückgegebenen Dokumente limitieren und eine bestimmte Anzahl von Ergebnissen überspringen:
db.meineSammlung.find().sort({ name: 1 }).limit(10).skip(5);Um die Anzahl der Dokumente zu zählen, die den Kriterien entsprechen:
db.meineSammlung.find({ typ: "KI" }).count();Um unterschiedliche Werte für ein bestimmtes Feld abzurufen:
db.meineSammlung.distinct("typ");Das find()-Verfahren gibt einen Cursor zurück, mit dem
Sie durch die Ergebnisse iterieren können:
const cursor = db.meineSammlung.find();
while (cursor.hasNext()) {
printjson(cursor.next());
}MongoDB bietet eine flexible Abfragesprache, die es ermöglicht, Daten basierend auf einer Vielzahl von Kriterien abzurufen. Sie können Felder auswählen, die Ergebnisse sortieren, limitieren und überspringen, sowie komplexe Abfrageoperatoren verwenden, um präzise Abfragen zu definieren. Cursors ermöglichen das Durchlaufen der Ergebnisse und bieten zusätzliche Methoden zur Datenmanipulation.