Verwenden von Ansichten in Amazon DocumentDB 8.0 - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Ansichten in Amazon DocumentDB 8.0

  • Amazon DocumentDB 8.0 unterstützt jetzt Ansichten. Ansichten funktionieren als virtuelle Sammlungen, die Daten basierend auf bestimmten Aggregationsvorgängen präsentieren. Wenn Sie eine Ansicht erstellen, definieren Sie eine Abfrage, die Daten aus einer oder mehreren Quellensammlungen transformiert. Amazon DocumentDB 8.0 führt diese Abfrage bei jedem Zugriff auf die Ansicht aus, ohne zusätzliche Speicherressourcen zu verbrauchen. Im Gegensatz zu Standardsammlungen speichern Ansichten in Amazon DocumentDB 8.0 keine Dokumente auf der Festplatte, was sie zu einer effizienten Lösung für die Präsentation transformierter oder gefilterter Daten für Anwendungen macht. Um eine Ansicht in Amazon DocumentDB zu erstellen, können Sie den Befehl createView oder die Hilfsmethode db.createView () verwenden:

    db.createView("viewName","sourceCollection", [ { $match: { status: "active" } }, { $project: { _id: 1, name: 1, email: 1 } } ] )

    Dadurch wird eine Ansicht mit dem Namen „ViewName“ erstellt, die auf „sourceCollection“ basiert und nur aktive Dokumente und Projekte enthält, nur die Felder _id, name und email. Ansichten in Amazon DocumentDB sind schreibgeschützt. Schreibvorgänge an Ansichten geben einen Fehler zurück. Für eine optimale Leistung bei großen Datensätzen können Sie Ihre View-Pipelines so strukturieren, dass die Effizienz maximiert wird. Bei komplexen Aggregationspipelines wird empfohlen, die $match-Stufe als erste Phase oder zu Beginn der Pipeline zu verwenden, um die Anzahl der Dokumente zu reduzieren, die in den nachfolgenden Phasen verarbeitet werden müssen, und so die Abfrageleistung zu verbessern.

Bewährte Methoden

Nachfolgend sind einige bewährte Methoden aufgeführt, die Sie bei Views anwenden sollten.

  • Früh filtern: Verwenden Sie $match-Stufen zu einem frühen Zeitpunkt in View-Pipelines, um die Menge der verarbeiteten Daten zu reduzieren.

  • Vermeiden Sie komplexe Aggregationen: Für häufig aufgerufene Ansichten mit komplexen Aggregationen sollten Sie erwägen, eine separate Sammlung mit vorab berechneten Ergebnissen zu erstellen, die regelmäßig aktualisiert werden.

  • Indexplanung: Stellen Sie sicher, dass Felder, die in View-Pipelines verwendet werden, insbesondere in den $match- und $sort-Vorgängen, in der Quellsammlung ordnungsgemäß indexiert sind.

  • Abfrageoptimierung: Verwenden Sie den Befehl explain, um zu verstehen, wie Ihre View-Abfragen ausgeführt werden, und um sie entsprechend zu optimieren.

  • Alternativen für Ansichten: Angesichts der funktionalen Unterschiede zwischen Amazon DocumentDB- und MongoDB-Ansichten sollten Sie bei Einschränkungen die Verwendung regulärer Sammlungen mit geplanten Aktualisierungen als Alternative zu Ansichten in Betracht ziehen.

Kompatibilität mit Aggregator-Operatoren

Amazon DocumentDB unterstützt viele Aggregationsoperatoren in Ansichtsdefinitionen und erweitert gleichzeitig die Kompatibilität weiter. Konzentrieren Sie sich bei der Verwendung von Ansichten auf die folgenden unterstützten Operatoren:

  • $match zum Filtern von Dokumenten

  • $project für die Feldauswahl und Transformation

  • $addFields zum Hinzufügen von berechneten Feldern

  • $sort für die Reihenfolge der Ergebnisse

  • $limit und $skip für die Paginierung

Einige spezialisierte Operatoren wie $currentOp, $replaceRoot und $geoNear funktionieren derzeit eher in direkten Aggregationsabfragen als in Ansichtsdefinitionen.

Nutzung von Indizes und Ansichten

Ansichten in Amazon DocumentDB 8.0 verwenden die Indizes der zugrunde liegenden Sammlung. Daher können Sie Indizes für eine Ansicht nicht direkt erstellen, löschen oder neu erstellen. Gut entworfene Indizes für die Quellsammlung können jedoch die Leistung von Anzeigeabfragen erheblich verbessern. Nachfolgend finden Sie einige Schritte zur Optimierung der Abfrageleistung für Ansichten:

  • Stellen Sie sicher, dass für die Felder der Quellsammlung, die in der Pipeline der Ansicht verwendet werden, geeignete Indizes vorhanden sind, insbesondere bei den Vorgängen $match und $sort

  • Verwenden Sie die Methode explain (), um Ausführungspläne für Abfragen zu analysieren und die Indexnutzung zu überprüfen. Z. B. db.viewName.find({...}).explain()