In diesem Artikel werden die Operationen für Erstellen, Lesen, Aktualisieren und Löschen (CRUD) in MongoDB durchgeführt. Es deckt mithilfe von Methoden wie InsertOne (), Find (), UpdateOne (), Deleteone () und Best Practices für effiziente Vorgänge einschließlich Indexierung, Batch -Operatio ab
In diesem Abschnitt wird angegeben, wie CRUDB (Erstellen, Lesen, Aktualisieren und Löschen) in MongoDB ausgeführt wird. Wir werden das Beispiel einer Sammlung mit dem Namen "Produkte" mit Dokumenten verwenden, die _id
, name
, price
und description
enthalten.
Erstellen von Dokumenten: So erstellen Sie ein neues Dokument (Einfügen), verwenden Sie die Methode insertOne()
(für ein einzelnes Dokument) oder insertMany()
(für mehrere Dokumente). Hier ist ein Beispiel mit der MongoDB -Shell:
<code class="javascript">db.products.insertOne( { name: "Laptop", price: 1200, description: "Powerful laptop" } ) db.products.insertMany( [ { name: "Tablet", price: 300, description: "Android tablet" }, { name: "Keyboard", price: 75, description: "Mechanical keyboard" } ] )</code>
Dieser Code fügt ein Laptop -Dokument ein und fügt dann mehrere Dokumente (Tablet und Tastatur) in einen einzelnen Vorgang ein. Das Feld _id
wird automatisch generiert, wenn sie nicht angegeben sind. Fahrerspezifische Implementierungen sind ähnlich und unter Verwendung der jeweiligen Fahrer- insertOne()
oder insertMany()
-Methoden.
Lesen von Dokumenten: Das Lesen von Dokumenten beinhaltet die Abfrage der Sammlung mit find()
. Sie können Filter angeben, um bestimmte Dokumente abzurufen. Zum Beispiel:
<code class="javascript">// Find all products db.products.find() // Find products with price less than 500 db.products.find( { price: { $lt: 500 } } ) // Find a single product by its ID db.products.findOne( { _id: ObjectId("...") } ) // Replace ... with the actual ObjectId</code>
find()
gibt einen Cursor zurück und ermöglicht es Ihnen, die Ergebnisse durchzusetzen. findOne()
gibt ein einzelnes Dokument zurück, das der Abfrage entspricht. Auch hier haben die Treiberimplementierungen gleichwertige Methoden.
Aktualisieren von Dokumenten: MongoDB bietet verschiedene Möglichkeiten zum Aktualisieren von Dokumenten. updateOne()
aktualisiert ein einzelnes Dokument, während updateMany()
mehrere Dokumente aktualisiert. Sie verwenden den $set
-Operator, um Felder zu ändern.
<code class="javascript">// Update the price of a specific product db.products.updateOne( { name: "Laptop" }, { $set: { price: 1300 } } ) // Increase the price of all products by 10% db.products.updateMany( {}, { $inc: { price: { $multiply: [ 0.1, "$price" ] } } } )</code>
Das erste Beispiel aktualisiert den Preis eines Laptops. Das zweite Beispiel verwendet den $inc
-Betreiber, um den Preis aller Produkte zu erhöhen. Komplexere Updates können mit anderen Update -Operatoren wie $push
, $pull
, $addToSet
usw. erreicht werden.
Löschen von Dokumenten: deleteOne()
entfernt ein einzelnes Dokument, und deleteMany()
entfernt mehrere Dokumente.
<code class="javascript">// Delete a specific product db.products.deleteOne( { name: "Keyboard" } ) // Delete all products with price greater than 1000 db.products.deleteMany( { price: { $gt: 1000 } } )</code>
Diese Befehle entfernen Dokumente basierend auf den angegebenen Kriterien.
Effiziente CRUD -Operationen erfordern eine sorgfältige Berücksichtigung mehrerer Faktoren:
find()
-Operationen zu beschleunigen. Die Indizes ähneln den Indizes in relationalen Datenbanken. Wählen Sie anhand Ihrer Abfragen geeignete Indextypen (z. B. Einzelfeld, Verbindungen, Geospatial).insertMany()
, updateMany()
und deleteMany()
um Operationen in mehreren Dokumenten in einer einzelnen Stapel durchzuführen, wodurch die Leistung im Vergleich zu den einzelnen Vorgängen erheblich verbessert wird.$where
Klauseln, da sie langsam sein können. Verwenden Sie stattdessen Betreiber wie $gt
, $lt
, $in
usw., die Indizes effektiv nutzen. Verwenden Sie die entsprechende Projektion ( { _id: 0, name: 1, price: 1 }
), um nur die erforderlichen Felder abzurufen und die Datenübertragung zu verringern.Die Fehlerbehandlung ist für robuste MongoDB -Anwendungen von entscheidender Bedeutung. Die Fahrer bieten Mechanismen, um Ausnahmen während der CRUD -Operationen zu fangen und zu bewältigen.
try-catch
Blöcke ein, um potenzielle Fehler wie Netzwerkprobleme, ungültige Daten oder Datenbankfehler zu behandeln.Die spezifischen Methoden zur Durchführung von CRUD -Operationen variieren je nach dem verwendeten Treiber geringfügig. Hier ist ein kurzer Überblick über Node.js und Python:
Node.js (mit dem mongodb
-Treiber):
<code class="javascript">const { MongoClient } = require('mongodb'); // ... connection code ... const client = new MongoClient(uri); async function run() { try { await client.connect(); const db = client.db('mydatabase'); const collection = db.collection('products'); // ... CRUD operations using collection.insertOne(), collection.find(), etc. ... } finally { await client.close(); } } run().catch(console.dir);</code>
Python (mit dem pymongo
-Treiber):
<code class="python">import pymongo # ... connection code ... client = pymongo.MongoClient(uri) db = client['mydatabase'] collection = db['products'] # ... CRUD operations using collection.insert_one(), collection.find(), etc. ... client.close()</code>
Beide Beispiele zeigen die Grundstruktur. Wenden Sie sich an die Dokumentation für Ihren spezifischen Treiber, um detaillierte Informationen zu den verfügbaren Methoden und Optionen zu erhalten. Denken Sie daran, Platzhalter wie uri
durch Ihre tatsächliche Verbindungszeichenfolge zu ersetzen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich (CRUD) Dokumente in MongoDB, lese, aktualisiert und lösche ich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!