MongoDB Capped Collections
MongoDB Capped Collections sind leistungsstarke Collections mit einer festen Größe. Bei einer festen Größe können wir sie uns als ringförmige Warteschlange vorstellen. Wenn der Speicherplatz der Collection aufgebraucht ist, überschreiben neu eingefügte Elemente die ursprünglichen Kopfelemente!
Capped Collection erstellen
Wir erstellen eine Capped Collection über createCollection und setzen die Option capped auf true:
>db.createCollection("cappedLogCollection",{capped:true,size:10000})
Sie können die Anzahl der Dokumente auch angeben, indem Sie die Eigenschaft max:1000 hinzufügen:
>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})
Überprüfen, ob eine Collection eine Capped Collection ist:
>db.cappedLogCollection.isCapped()
Wenn Sie eine vorhandene Collection in eine Capped Collection umwandeln müssen, können Sie den folgenden Befehl verwenden:
>db.runCommand({"convertToCapped":"posts",size:10000})
Der obige Code wandelt unsere vorhandene posts-Collection in eine Capped Collection um.
Capped Collection abfragen
Dokumente in einer Capped Collection werden in Einfügereihenfolge gespeichert. Standardmäßig geben Abfragen sie in Einfügereihenfolge zurück, und Sie können auch $natural verwenden, um die Rückgabereihenfolge anzupassen.
>db.cappedLogCollection.find().sort({$natural:-1})
Merkmale von Capped Collections
Sie können einfügen und aktualisieren, aber Aktualisierungen dürfen die Größe der Collection nicht überschreiten, andernfalls schlägt die Aktualisierung fehl. Löschen ist nicht erlaubt, aber Sie können drop() aufrufen, um alle Zeilen in der Collection zu löschen. Nach dem Aufruf von drop() müssen Sie die Collection jedoch explizit neu erstellen.
Auf einer 32-Bit-Maschine beträgt die maximale Größe einer Capped Collection etwa 482.5M; auf 64-Bit ist sie nur durch die Systemdateigröße begrenzt.
Eigenschaften und Verwendung von Capped Collections
Eigenschaften
- Eigenschaft 1: Das Einfügen in eine Capped Collection ist extrem schnell.
- Eigenschaft 2: Die Abfrageausgabe in Einfügereihenfolge ist extrem schnell.
- Eigenschaft 3: Beim Einfügen der neuesten Daten kann sie die ältesten Daten entfernen.
Nutzung
- Verwendung 1: Protokollinformationen speichern.
- Verwendung 2: Eine kleine Anzahl von Dokumenten zwischenspeichern.