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.
$redact
Die $redact Aggregationsphase in Amazon DocumentDB wird verwendet, um Inhalte anhand der Werte der angegebenen Felder selektiv in die Ausgabedokumente ein- oder auszuschließen. Dies ist besonders nützlich in Szenarien, in denen Sie die Sichtbarkeit sensibler Daten auf der Grundlage von Zugriffsebenen oder Benutzerberechtigungen kontrollieren müssen.
Parameter
-
$cond: Ein Ausdruck, der entweder$$KEEP$$PRUNE, oder$$DESCENDfür jedes Feld im Dokument ausgewertet wird. -
$$KEEP: Behält das aktuelle Feld im Ausgabedokument bei. -
$$PRUNE: Entfernt das aktuelle Feld aus dem Ausgabedokument. -
$$DESCEND: Wendet den$redactSchritt rekursiv auf das aktuelle Feld an, bei dem es sich um ein Objekt oder ein Array handelt.
Beispiel (MongoDB Shell)
In diesem Beispiel verwenden wir die $redact Phase, um Bestellungen nach ihrem Status zu filtern und nur Bestellungen mit bestimmten Statuswerten anzuzeigen.
Erstellen Sie Beispieldokumente
db.orders.insert([ { "_id": 1, "status": "shipped", "customer": "Carlos Salazar", "total": 150.00, "date": "2025-01-15" }, { "_id": 2, "status": "processing", "customer": "Saanvi Sarkar", "total": 89.99, "date": "2025-01-20" }, { "_id": 3, "status": "cancelled", "customer": "Zhang Wei", "total": 220.50, "date": "2025-01-18" } ])
Beispiel für eine Abfrage
db.orders.aggregate([ { $redact: { $cond: { if: { $in: ["$status", ["shipped", "processing"]] }, then: "$$KEEP", else: "$$PRUNE" } } } ])
Ausgabe
[
{ _id: 1, status: 'shipped', customer: 'Carlos Salazar', total: 150, date: '2025-01-15' },
{ _id: 2, status: 'processing', customer: 'Saanvi Sarkar', total: 89.99, date: '2025-01-20' }
]
In diesem Beispiel überprüft die $redact Phase den Wert des status Felds in jedem Dokument. Wenn status es sich um „Versand“ oder „Bearbeitung“ handelt, wird das Dokument aufbewahrt ($$KEEP). Andernfalls wird das Dokument beschnitten ()$$PRUNE.
Codebeispiele
Um ein Codebeispiel für die Verwendung des $redact Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten: