Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
$redact
Tahap $redact agregasi di Amazon DocumentDB digunakan untuk secara selektif menyertakan atau mengecualikan konten dari dokumen keluaran berdasarkan nilai bidang tertentu. Ini sangat berguna dalam skenario di mana Anda perlu mengontrol visibilitas data sensitif berdasarkan tingkat akses atau izin pengguna.
Parameter
-
$cond: Ekspresi yang mengevaluasi salah satu$$KEEP,$$PRUNE, atau$$DESCENDuntuk setiap bidang dalam dokumen. -
$$KEEP: Mempertahankan bidang saat ini dalam dokumen output. -
$$PRUNE: Menghapus bidang saat ini dari dokumen output. -
$$DESCEND: Secara rekursif menerapkan$redacttahap ke bidang saat ini, yang merupakan objek atau array.
Contoh (MongoDB Shell)
Dalam contoh ini, kita akan menggunakan $redact tahap untuk memfilter pesanan berdasarkan statusnya, hanya menampilkan pesanan dengan nilai status tertentu.
Buat dokumen sampel
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" } ])
Contoh kueri
db.orders.aggregate([ { $redact: { $cond: { if: { $in: ["$status", ["shipped", "processing"]] }, then: "$$KEEP", else: "$$PRUNE" } } } ])
Keluaran
[
{ _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' }
]
Dalam contoh ini, $redact tahap memeriksa nilai status bidang di setiap dokumen. Jika “statusdikirim” atau “diproses”, dokumen disimpan ($$KEEP). Jika tidak, dokumen dipangkas ($$PRUNE).
Contoh kode
Untuk melihat contoh kode untuk menggunakan $redact perintah, pilih tab untuk bahasa yang ingin Anda gunakan: