$$DESCEND - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

$$DESCEND

Amazon DocumentDB の $$DESCEND演算子は、$redactパイプラインステージ内で使用される特殊な位置配列演算子です。集約パイプラインに、ネストレベルに関係なく、現在のドキュメントに降下し、すべてのフィールドを処理するように指示します。

$redact ステージが$$DESCENDオペレータに遭遇すると、現在のドキュメント内のすべてのフィールドが表示されたままになり、パイプラインのさらに下流で処理されます。これは、ドキュメントの構造を維持しながら、条件に基づいて特定のフィールドを選択的に編集またはプルーニングする場合に便利です。

パラメータ

なし。

例 (MongoDB シェル)

この例では、 $$DESCEND 演算子で $redactステージを使用して、 codeフィールドが「Reg」と等しいドキュメントを選択的に表示します。

サンプルドキュメントを作成する

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" } ]);

クエリの例

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

出力

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

コードの例

$$DESCEND コマンドを使用するコード例を表示するには、使用する言語のタブを選択します。

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