

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

# \$1\$1DESCEND
<a name="DESCEND"></a>

`$$DESCEND`Operator 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)
<a name="DESCEND-examples"></a>

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
<a name="DESCEND-code"></a>

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()
```

------