游樂場 https://mongoplayground.net/p/tIMLOtWTnno
資料:
[
{
"_id": "1",
"data": { // How to remove this "data" Field
"colour": "Blue",
"size": "12",
}
},
{
"_id": "2",
"data": { // How to remove this "data" Field
"colour": "Silver",
"size": "20",
}
}
]
我想洗掉該data欄位。
預期輸出:
[
{
"_id": "1",
"colour": "Blue",
"size": "12",
},
{
"_id": "2",
"colour": "Silver",
"size": "20",
}
]
像這樣嘗試過:
db.collection.aggregate({
$project: {
_id: 1,
data: {
$objectToArray: "$data"
}
},
},
{
$unwind: "$data"
},
{
$project: {
"$data.k": "$data.v"
}
})
這個怎么做 ?
uj5u.com熱心網友回復:
查詢1
- 設定在根中添加欄位并洗掉資料
*你也可以使用專案
測驗代碼在這里
aggregate(
[{"$set":
{"colour":"$data.colour",
"size":"$data.size",
"data":"$$REMOVE"}}])
查詢2
- 更通用的解決方案,無需在專案中鍵入每個欄位
- 將資料嵌入物件與根合并,并使其成為新根
- 洗掉資料欄位
測驗代碼在這里
aggregate(
[{"$replaceRoot":{"newRoot":{"$mergeObjects":["$data", "$$ROOT"]}}},
{"$project":{"data":0}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/438881.html
標籤:javascript 数组 mongodb 目的 聚合框架
