Qua*_*tum 4 mongodb aggregation-framework
有这个基本文件:
{
"_id": "userID",
"name": "User Name",
"profiles": [
{
"level": 1,
"bar": {
"_id": "bar1ID",
"name": "Bar Name"
}
},
{
"level": 1,
"bar": {
"_id": "bar2ID",
"name": "Bar 2 Name"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要删除一些字段,并重新分配bar字段,以便它只包含_id:
{
"_id": "userID",
"profiles": [
{
"level": 1,
"bar": "bar1ID"
},
{
"level": 1,
"bar": "bar2ID"
}
]
}
Run Code Online (Sandbox Code Playgroud)
与UserID匹配,并使用mongo聚合框架
使用.aggregate()方法.
管道中唯一的阶段是$project您使用$map运营商的阶段.
db.collection.aggregate([
{ "$project": {
"profiles": {
"$map": {
"input": "$profiles",
"as": "profile",
"in": {
"level": "$$profile.level",
"bar": "$$profile.bar._id"
}
}
}
} }
])
Run Code Online (Sandbox Code Playgroud)
哪个回报:
{
"_id" : "userID",
"profiles" : [
{
"level" : 1,
"bar" : "bar1ID"
},
{
"level" : 1,
"bar" : "bar2ID"
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |