$$DESCEND - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$$DESCEND

$$DESCENDOperator di Amazon DocumentDB adalah operator array posisi khusus yang digunakan dalam tahap pipeline. $redact Ini menginstruksikan pipa agregasi untuk turun ke dokumen saat ini dan memproses semua bidang, terlepas dari tingkat sarangnya.

Ketika $redact tahap bertemu dengan $$DESCEND operator, itu akan membuat semua bidang dalam dokumen saat ini terlihat dan memprosesnya lebih jauh ke bawah pipa. Ini berguna ketika Anda ingin menyunting atau memangkas bidang tertentu secara selektif berdasarkan suatu kondisi, sambil mempertahankan struktur dokumen.

Parameter

Tidak ada.

Contoh (MongoDB Shell)

Dalam contoh ini, kita akan menggunakan $redact panggung dengan $$DESCEND operator untuk secara selektif menampilkan dokumen di mana code bidang sama dengan “Reg”.

Buat dokumen sampel

db.patient.insertMany([ { "_id": 1, "code": "Emp", "patient": "John Doe", "DOB": "1/1/1980", "Hospital": "Main" }, { "_id": 2, "code": "Reg", "patient": "Jane Doe", "DOB": "3/27/1989", "Hospital": "Cherry Hill" }, { "_id": 3, "code": "Emp", "patient": "Bob Smith", "DOB": "6/15/1975", "Hospital": "Downtown" } ]);

Contoh kueri

db.patient.aggregate([ { $redact: { $cond: { if: { $eq: ["Reg", "$code"] }, then: "$$DESCEND", else: "$$PRUNE" } }} ]);

Keluaran

{ "_id": 2, "code": "Reg", "patient": "Jane Doe", "DOB": "3/27/1989", "Hospital": "Cherry Hill" }

Contoh kode

Untuk melihat contoh kode untuk menggunakan $$DESCEND perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

Node.js
const { MongoClient } = require('mongodb'); async function redactPatients() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('patient'); const result = await collection.aggregate([ { $redact: { $cond: { if: { $eq: ["Reg", "$code"] }, then: "$$DESCEND", else: "$$PRUNE" } }} ]).toArray(); console.log(result); client.close(); } redactPatients();
Python
from pymongo import MongoClient def redact_patients(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test collection = db.patient result = list(collection.aggregate([ { "$redact": { "$cond": { "if": { "$eq": ["Reg", "$code"] }, "then": "$$DESCEND", "else": "$$PRUNE" } }} ])) print(result) client.close() redact_patients()