Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$redact
La fase di $redact aggregazione in Amazon DocumentDB viene utilizzata per includere o escludere selettivamente contenuti dai documenti di output in base ai valori dei campi specificati. Ciò è particolarmente utile in scenari in cui è necessario controllare la visibilità dei dati sensibili in base ai livelli di accesso o alle autorizzazioni degli utenti.
Parametri
-
$cond: espressione che restituisce uno$$KEEPo$$DESCENDpiù campi del documento.$$PRUNE -
$$KEEP: mantiene il campo corrente nel documento di output. -
$$PRUNE: rimuove il campo corrente dal documento di output. -
$$DESCEND: applica in modo ricorsivo lo$redactstage al campo corrente, che è un oggetto o una matrice.
Esempio (MongoDB Shell)
In questo esempio, useremo lo $redact stage per filtrare gli ordini in base al loro stato, mostrando solo gli ordini con valori di stato specifici.
Crea documenti di esempio
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" } ])
Esempio di query
db.orders.aggregate([ { $redact: { $cond: { if: { $in: ["$status", ["shipped", "processing"]] }, then: "$$KEEP", else: "$$PRUNE" } } } ])
Output
[
{ _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 questo esempio, lo $redact stage controlla il valore del status campo in ogni documento. Se status è «spedito» o «in elaborazione», il documento viene conservato ($$KEEP). Altrimenti, il documento viene eliminato ()$$PRUNE.
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo del $redact comando, scegliete la scheda relativa alla lingua che desiderate utilizzare: