Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$redact
L'étape d'$redactagrégation dans Amazon DocumentDB est utilisée pour inclure ou exclure de manière sélective le contenu des documents de sortie en fonction des valeurs des champs spécifiés. Cela est particulièrement utile dans les scénarios où vous devez contrôler la visibilité des données sensibles en fonction des niveaux d'accès ou des autorisations des utilisateurs.
Paramètres
-
$cond: expression qui évalue soit pour$$KEEP$$PRUNE, soit$$DESCENDpour chaque champ du document. -
$$KEEP: conserve le champ actuel dans le document de sortie. -
$$PRUNE: Supprime le champ actuel du document de sortie. -
$$DESCEND: applique la$redactscène de manière récursive au champ actuel, qui est un objet ou un tableau.
Exemple (MongoDB Shell)
Dans cet exemple, nous allons utiliser l'$redactétape pour filtrer les commandes en fonction de leur statut, en n'affichant que les commandes avec des valeurs de statut spécifiques.
Création d'exemples de documents
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" } ])
Exemple de requête
db.orders.aggregate([ { $redact: { $cond: { if: { $in: ["$status", ["shipped", "processing"]] }, then: "$$KEEP", else: "$$PRUNE" } } } ])
Sortie
[
{ _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' }
]
Dans cet exemple, l'$redactétape vérifie la valeur du status champ dans chaque document. S'il status est « expédié » ou « en cours de traitement », le document est conservé ($$KEEP). Dans le cas contraire, le document est élagué ($$PRUNE).
Exemples de code
Pour afficher un exemple de code relatif à l'utilisation de la $redact commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :