【发布时间】:2018-08-06 19:29:19
【问题描述】:
在 MongoDB 中执行以下查询
roles.aggregate([
{'$unwind': '$skills'},
{'$lookup': {
'from': 'skills',
'localField': 'skills._id',
'foreignField': '_id',
'as': 'skillsInfo'
}},
{'$unwind': '$skillsInfo'},
{'$addFields': {'skills': {'$mergeObjects': ['$skills', '$skillsInfo']}}},
{'$project': {'skillsInfo': 0}},
{'$group': {
'_id': '$_id',
'name': {'$first': '$name'},
'description': {'$first': '$description'},
'departments': {'$first': '$departments'},
'skills': {'$push': '$skills'},
'deep' : {'$first' : '$deep'},
'range': {'$first' : '$range'},
'employees': {'$first' : '$employees'}
}},
{'$lookup': {
'from': 'departments',
'localField': 'departments',
'foreignField': '_id',
'as': 'departments'
}}
])
我有这样的结果:
{
"code": 10,
"deep": 1,
"departments": [
{
"_id": 0,
....
}
],
"description": "ER expert",
"employees": [
1,
0
],
"name": "Database Designer",
"range": {
"int": 75,
"min": 40
},
"skills": [
{
"_id": 2,
....
}
]
}
有没有办法在“code”中替换子文档键“_id”的名称?例如,我希望“departments._id”为“departments.code”。技能也是一样。无论如何,如果重要的话,我正在使用 MongoDB 3.6 和 PyMongo。 谢谢
【问题讨论】:
-
您使用的是哪个 MongoDB 版本?
标签: mongodb