我有一個集合,其中包含許多包含太多欄位的檔案,但我想在名為 Data 的新欄位中收集許多這些欄位,這是一個示例
{
"_id" : ObjectId("***********"),
"name" : "1234567890",
"mobile" : "Test",
.
.
.
.
.
etc
}
我想使用 updateMany 使集合中的所有檔案看起來像這樣
{
"_id" : ObjectId("***********"),
"name" : "1234567890",
"mobile" : "Test",
"Data":{
.
.
.
.
.
etc
}
}
uj5u.com熱心網友回復:
選項1(很少嵌套欄位):您可以通過以下方式進行:
db.collection.update({},
[
{
$project: {
data: {
name: "$name",
mobile: "$mobile"
}
}
}
],
{
multi: true
})
游樂場1
方案二:(如果需要嵌套的欄位太多):
db.collection.update({},
[
{
$project: {
data: "$$ROOT",
name: 1,
mobile: 1
}
},
{
$unset: [
"data.name",
"data.mobile"
]
}
],
{
multi: true
})
游樂場2
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/438884.html
上一篇:MongoDB和ReactJS聚合:如何回傳專案數?
下一篇:貓鼬復雜聚合管道問題
