javascript - 求和金额后在 MongoDB 中出现“将循环结构转换为 JSON”错误
问题描述
在我的 MongoDB 后端中,我正在运行count
存在多少客户,然后将其保存在变量“totalCustomers”中以作为端点响应的一部分传递:
let totalCustomers = await db.collection('view_customer_data').find(search).count({ $sum: "customer._id" });
以上是我想计算实例时使用的,即在这种情况下,有多少客户。
我的问题是关于如何使用$sum
来将数值相加并将该值与响应一起传递。我试过这个,但它会产生“将循环结构转换为 JSON”错误:
let totalOpenBalance = await db.collection('view_customer_data').find({
"_id": { $sum: "$openBalance" }
});
我也试过这个:
let totalOpenBalance = await db.collection('view_customer_data').aggregate({
"_id": { $sum: "$openBalance" }
});
... 和这个:
let totalOpenBalance = await db.collection('view_customer_data').aggregate({ $group: { _id: '_id', $sum: "$openBalance" } });
...但得到了同样的错误。
这里的语法应该是什么样的?
这适用于看起来像这样的数据:
{
"_id" : "44sd44444sdsd44444dsd44"),
},
"customer" : {
"_id" : "4th17d43561f0613be0a454f",
"name" : {
"first" : "John",
"last" : "Smith"
}
},
"openBalance" : 28,
"lastTransactionDate" : ISODate("2018-01-10T00:00:00.000+0000")
}
我返回结果的函数部分如下所示:
// preceeeding code...
db.collection('view_customer_data').find(search).skip(skip).limit(pagesize).forEach(function (doc) {
counter ++; {
console.log('doc: ', doc);
docs.push(doc);
}
}, function (err) {
if (err) {
if (!ioOnly) {
return next(err);
} else {
return res(err);
}
}
if (ioOnly) {
res({ sessionId: sessID, count: count, data: docs, totalCustomers: totalCustomers, totalOpenBalance: totalOpenBalance });
}
else {
res.send({ count: count, data: docs, totalCustomers: totalCustomers, totalOpenBalance: totalOpenBalance });
}
});
}
解决方案
推荐阅读
- android-studio - 我的每个项目构建错误任务':app:processDebugResources'的执行失败
- haskell - 数字范围之和
- powershell - [Powershell]:第二次执行 Copy-Item 创建子文件夹 (5.1.17763.1007)
- gdb - gdb 堆栈跟踪显示没有回溯 - 所选线程正在运行
- sql-server - 如何在 jdbc 中使用 scope_identity
- arrays - PowerShell:数组到多个数组
- azure - 使用 Azure Logic App 解压缩和重命名基础文件
- mongodb - 在 MongoDB 中合并同一集合中的两个文档
- python - 在浮点数学中将数字除以其除数时,如果结果不是整数浮点数
- html - 我遇到了与对齐、内联块、图片和字体相关的问题