本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$replaceRoot
$replaceRoot 運算子用來將根文件取代為指定的內嵌文件。當您想要將巢狀文件提升至最上層或重組資料輸出時,此功能非常有用。
參數
-
newRoot:將取代現有根文件的新根文件。
範例 (MongoDB Shell)
此範例說明如何從客戶訂單中擷取運送地址資訊,這對於產生運送標籤或地址清單非常有用。
建立範例文件
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 } ])
查詢範例
db.orders.aggregate([ { $replaceRoot: { newRoot: "$shippingAddress" } } ])
輸出
{
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'
}
程式碼範例
若要檢視使用 $replaceRoot命令的程式碼範例,請選擇您要使用的語言標籤: