我正在尝试使用MERN堆栈处理我的第一个项目。我有一个get请求,试图返回MongoDB中我的units集合中所有“cost”字段的总和。我确信我做错了什么,但在广泛的谷歌搜索之后,我找不到任何对我来说更清楚的东西。
我试着看了一些视频和混乱的语法,但我感到非常失落。
app.get("/unitsTotal", async (request, response) => {
try {
Unit.aggregate([
{
$lookup: {
from: "units",
localField: "cost",
foreignField: "_id",
as: "costs",
},
$group: {
_id: "null",
totalCost: {
$sum: "costs",
},
},
},
]);
return response.status(200).json(totalCost);
} catch (error) {
console.log(error.message);
response.status(500).send({ message: error.message });
}
});
字符串
1条答案
按热度按时间nbysray51#
MongoDB聚合管道的每个阶段都必须是数组的一个元素,包含一个 single 聚合操作符:
字符串
返回MongoDB中我的units集合中所有“cost”字段的总和
听起来你实际上只涉及一个集合,你只是想对所有文档求和?
在这种情况下,您不需要
$lookup
阶段,您可以直接$group
所有文档:型
字段路径文档:
要指定字段路径,请在字段名或带点的字段名(如果字段在嵌入文档中)前面加上美元符号
$
。例如,"$user"
指定user
字段的字段路径,"$user.name"
指定"user.name"
字段的字段路径。