As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$redact
O estágio $redact de agregação no Amazon DocumentDB é usado para incluir ou excluir seletivamente conteúdo dos documentos de saída com base nos valores dos campos especificados. Isso é particularmente útil em cenários em que você precisa controlar a visibilidade de dados confidenciais com base nos níveis de acesso ou nas permissões do usuário.
Parâmetros
-
$cond: uma expressão que é avaliada como$$KEEP$$PRUNE, ou$$DESCENDpara cada campo no documento. -
$$KEEP: mantém o campo atual no documento de saída. -
$$PRUNE: remove o campo atual do documento de saída. -
$$DESCEND: aplica recursivamente o$redactestágio ao campo atual, que é um objeto ou matriz.
Exemplo (MongoDB Shell)
Neste exemplo, usaremos o $redact estágio para filtrar pedidos com base em seu status, mostrando somente pedidos com valores de status específicos.
Crie documentos de amostra
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" } ])
Exemplo de consulta
db.orders.aggregate([ { $redact: { $cond: { if: { $in: ["$status", ["shipped", "processing"]] }, then: "$$KEEP", else: "$$PRUNE" } } } ])
Saída
[
{ _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' }
]
Neste exemplo, o $redact estágio verifica o valor do status campo em cada documento. Se status for “enviado” ou “processado”, o documento será mantido ($$KEEP). Caso contrário, o documento será removido ($$PRUNE).
Exemplos de código
Para ver um exemplo de código para usar o $redact comando, escolha a guia do idioma que você deseja usar: