在 $group 完成后,我在 $_id 中有一个数字。但是,我需要这个值来访问一个对象并返回你的字符串。const week = { 1: 'Domingo', 2: 'Segunda', 3: 'Terça', 4: 'Quarta', 5: 'Quinta', 6: 'Sexta', 7: 'Sábado',}db.trips.aggregate( [ { $group: { _id: { $dayOfWeek: "$startTime" }, qtd: { $sum: 1 } } }, { $project: { diaDaSemana: week["$_id"], total: "$qtd", } } ]);我尝试了很多次,但没有奏效。感谢帮助。
1 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
聚合管道不像 javascript 那样取消引用对象。
如果您将天数作为数组传递,则在$project阶段中,您可以使用$arrayElemAt来获取相应的字符串。
您将需要第零个元素来偏移索引,以便“Domingo”位于索引 1:
const week = [
'Nada',
'Domingo',
'Segunda',
'Terça',
'Quarta',
'Quinta',
'Sexta',
'Sábado',
]
然后在$project阶段:
diaDaSemana: {$arrayElemAt: [week, "$_id"]},
添加回答
举报
0/150
提交
取消