$replaceRoot - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$replaceRoot

L'$replaceRootoperatore viene utilizzato per sostituire il documento radice con il documento incorporato specificato. Ciò è utile quando si desidera promuovere un documento annidato al livello superiore o ristrutturare l'output dei dati.

Parametri

  • newRoot: il nuovo documento radice che sostituirà il documento radice esistente.

Esempio (MongoDB Shell)

Questo esempio mostra come estrarre le informazioni sull'indirizzo di spedizione dagli ordini dei clienti, utile per generare etichette di spedizione o elenchi di indirizzi.

Crea documenti di esempio

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

Esempio di interrogazione

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

Output

{ 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' }

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo del $replaceRoot comando, scegliete la scheda relativa alla lingua che desiderate utilizzare:

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