gpt4 book ai didi

javascript - 在哪里处理 MERN 堆栈上的数据?

转载 作者:行者123 更新时间:2023-12-04 09:45:58 25 4
gpt4 key购买 nike

我正在构建一个基于 MERN Stack 的费用控制应用程序,我想知道哪种方式是处理数据的最佳方式。

更具体地说,我的费用数据具有以下模型

  {
"_id" : ObjectId("5eceb10f0b59a200a545c39b"),
"date" : ISODate("2019-10-10T00:00:00.000Z"),
"description" : "INTERT BILL",
"credit" : "",
"debit" : "-100",
"category" : "HOME",
"subcategory" : "INTERNET",
"__v" : 0
}

如果我想在特定日期按类别对费用进行分组,最好的方法是什么?

在 mongodb 上处理它,通过聚合查询或获取特定日期范围内的所有费用并在发送到客户端之前在 node.js 上对其进行分组?

期望的输出:
{
HOME: {
total: '-300',
subcategories: [
{
internet: { total: -100}
},
{
water: { total: -200 }
}
]
}
}

最佳答案

您应该让 MongoDB 进行分组,尤其是在处理大型数据集时。原因是您可能会block the event-loop通过长时间运行的操作。这是一个可以帮助您入门的聚合查询:

yourModel.aggregate([
{
$match: {
date: yourDateToMatch
}
},
{ // you need this conversion stage in order to be able to do maths with your debit field
$addFields: {
convertedDebit: {
$toDecimal: "$debit"
}
}
},
{
$group: {
_id: "$category",
total: {
$sum: "$convertedDebit"
},
// add grouping options for subcategories
}
}

])

并使用 node.js 返回结果。

关于javascript - 在哪里处理 MERN 堆栈上的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62106950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com