$replaceWith - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$replaceWith

Nouveau depuis la version 8.0

Non pris en charge par le cluster Elastic.

La phase $replaceWith d'agrégation dans Amazon DocumentDB est utilisée pour remplacer le document d'entrée par un nouveau document. Tous les champs existants du document d'entrée, y compris le champ _id, sont remplacés par le nouveau document. $replaceWithest couramment utilisé pour aplatir des documents ou promouvoir un document intégré au niveau supérieur.

Paramètres

  • <replacement>(obligatoire) : Le nouveau document qui remplacera le document existant.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$replaceWithopérateur pour remplacer un document existant dans une collection Amazon DocumentDB.

Création d'exemples de documents

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

Exemple de requête

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

Sortie

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

Exemples de code

Pour afficher un exemple de code d'utilisation de la $replaceWith commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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