$$KEEP - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$$KEEP

Die $$KEEP Systemvariable wird zusammen mit der $redact Phase in der Aggregationspipeline verwendet, um das aktuelle Dokument oder Feld unverändert zu lassen und es in die Ausgabe aufzunehmen.

Parameter

Keine

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt die Verwendung von $$KEEP in einer Amazon DocumentDB-Aggregationspipeline. Dokumente werden nur aufbewahrt, wenn der Zugriff auf „öffentlich“ steht, andernfalls werden sie entfernt.

Erstellen Sie Beispieldokumente

db.articles.insertMany([ { title: "Article A", access: "public", content: "Visible content" }, { title: "Article B", access: "private", content: "Hidden content" } ]);

Beispiel für eine Abfrage

db.articles.aggregate([ { $redact: { $cond: [ { $eq: ["$access", "public"] }, "$$KEEP", "$$PRUNE" ] } } ]);

Ausgabe

[ { "_id" : ObjectId("..."), "title" : "Article A", "access" : "public", "content" : "Visible content" } ]

Codebeispiele

Um ein Codebeispiel für die Verwendung des $$KEEP Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function run() { const client = new MongoClient( 'mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0' ); try { await client.connect(); const db = client.db('test'); const articles = db.collection('articles'); const pipeline = [ { $redact: { $cond: [ { $eq: ["$access", "public"] }, "$$KEEP", "$$PRUNE" ] } } ]; const results = await articles.aggregate(pipeline).toArray(); console.log(results); } finally { await client.close(); } } run().catch(console.error);
Python
from pymongo import MongoClient client = MongoClient( "mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0" ) db = client.test articles = db.articles pipeline = [ { "$redact": { "$cond": [ {"$eq": ["$access", "public"]}, "$$KEEP", "$$PRUNE" ] } } ] results = list(articles.aggregate(pipeline)) print(results) client.close()