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

$replaceRoot

Der $replaceRoot Operator wird verwendet, um das Stammdokument durch das angegebene eingebettete Dokument zu ersetzen. Dies ist nützlich, wenn Sie ein verschachteltes Dokument auf die oberste Ebene hochstufen oder Ihre Datenausgabe neu strukturieren möchten.

Parameter

  • newRoot: Das neue Stammdokument, das das bestehende Stammdokument ersetzen wird.

Beispiel (MongoDB Shell)

Dieses Beispiel zeigt, wie Lieferadressinformationen aus Kundenbestellungen extrahiert werden, was für die Generierung von Versandetiketten oder Adresslisten nützlich ist.

Erstellen Sie Beispieldokumente

db.orders.insertMany([ { "_id":1, "orderId": "ORD-2024-001", "customerId": "CUST-12345", "orderDate": "2024-01-15", "shippingAddress": { "name": "María García", "street": "123 Main St", "city": "Seattle", "state": "WA", "zipCode": "98101", "country": "USA" },"totalAmount": 149.99 }, { "_id":2, "orderId": "ORD-2024-002", "customerId": "CUST-67890", "orderDate": "2024-01-16", "shippingAddress": { "name": "Arnav Desai", "street": "456 Oak Ave", "city": "Portland", "state": "OR", "zipCode": "97201", "country": "USA" }, "totalAmount": 89.50 } ])

Beispiel für eine Abfrage

db.orders.aggregate([ { $replaceRoot: { newRoot: "$shippingAddress" } } ])

Ausgabe

{ name: 'María García', street: '123 Main St', city: 'Seattle', state: 'WA', zipCode: '98101', country: 'USA' }, { name: 'Arnav Desai', street: '456 Oak Ave', city: 'Portland', state: 'OR', zipCode: '97201', country: 'USA' }

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); async function extractShippingAddresses() { 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('orders'); const result = await collection.aggregate([ { $replaceRoot: { newRoot: "$shippingAddress" } } ]).toArray(); console.log(result); await client.close(); } extractShippingAddresses();
Python
from pymongo import MongoClient def extract_shipping_addresses(): 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['orders'] result = list(collection.aggregate([ { "$replaceRoot": { "newRoot": "$shippingAddress" } } ])) print(result) client.close() extract_shipping_addresses()