$ ersetzendurch - 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.

$ ersetzendurch

Neu ab Version 8.0

Wird von Elastic Cluster nicht unterstützt.

Die $replaceWith Aggregationsphase in Amazon DocumentDB wird verwendet, um das Eingabedokument durch ein neues Dokument zu ersetzen. Alle vorhandenen Felder im Eingabedokument, einschließlich des Felds _id, werden durch das neue Dokument ersetzt. $replaceWithwird häufig verwendet, um Dokumente zu vereinfachen oder ein eingebettetes Dokument auf die oberste Ebene heraufzustufen.

Parameter

  • <replacement>(erforderlich): Das neue Dokument, das das bestehende Dokument ersetzen wird.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $replaceWith Operator verwendet wird, um ein vorhandenes Dokument in einer Amazon DocumentDB-Sammlung zu ersetzen.

Erstellen Sie Beispieldokumente

db.restaurants.insertMany([ { "restaurantId": "REST-0Y9GL0", "name": "Biryani Adda", "cuisine": "Indian", "ratings": [ 3, 4, 3, 2, 2, 4, 1, 5, 5, 5 ] }, { "restaurantId": "REST-8L2PX9", "name": "The Burger Spot", "cuisine": "American", "ratings": [ 2, 3, 4, 5, 3, 1, 1, 2, 4 ] } ]);

Beispiel für eine Abfrage

db.restaurants.aggregate([ { $replaceWith: { name: "$name", cuisine: "$cuisine", rating: { $avg: "$ratings" } } } ]);

Ausgabe

[ { name: 'Biryani Adda', cuisine: 'Indian', rating: 3.4 }, { name: 'The Burger Spot', cuisine: 'American', rating: 2.7777777777777777 } ]

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); async function replaceDoc() { 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('restaurants'); const result = await collection.aggregate([ { $replaceWith: { name: "description_index", cuisine: 2, rating: { $avg: "$ratings" } } } ]).toArray(); console.log(result); client.close(); } replaceDoc();
Python
from pymongo import MongoClient def replace_document(): 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.restaurants result = list(collection.aggregate([ { '$replaceWith': { 'name': "$name", 'cuisine': "$cuisine", 'rating': { '$avg': "$ratings"} } } ])) print(result) client.close() replace_document()