我有以下查询...
db.getCollection('apprenticeships')
.aggregate([
{
$match: {
'Vacancy._id': { $in: [1, 2, 3] },
}
},
{
$group: {
'_id': {
'VacancyId': '$Vacancy._id',
'Status': '$Status'
},
'Count': { $sum: 1 }
}
},
{
$sort: {
'_id.VacancyId': 1,
'_id.Status': 1
}
}
])
其中给出了每个元素具有以下结构的结果
{
"_id" : {
"VacancyId" : 1,
"Status" : 90
},
"Count" : 40.0
}
如何重新映射该结构,以便输出中的元素看起来像这样?
{
"VacancyId": 1,
"Status": 90,
"Count": 40
}
答案 0 :(得分:1)
您可以将$project
阶段添加到汇总管道,以添加新字段VacancyId
和status
,然后隐藏_id
db.getCollection('apprenticeships')
.aggregate([{
$match: {
'Vacancy._id': {
$in: [1, 2, 3]
},
}
},
{
$group: {
'_id': {
'VacancyId': '$Vacancy._id',
'Status': '$Status'
},
'Count': {
$sum: 1
}
}
},
{
$sort: {
'_id.VacancyId': 1,
'_id.Status': 1
}
},
{
{
$project:{ 'VacancyId': '$_id.VacancyId', 'Status': '$_id.Status', 'Count': '$Count', '_id': 0 }
}
}
])