首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB数据库统计信息

MongoDB数据库统计信息
EN

Stack Overflow用户
提问于 2019-02-26 03:15:46
回答 1查看 98关注 0票数 0

所以我有一个db (MongoDB),每隔几分钟我就会在其中存储温度(它现在有超过20k个条目)。我想在我的网站(在Node.js/Express +Mongoose上运行)上显示一些关于这些数据的统计数据。

现在我想计算一些统计数据(avg,max,min,...)并在我的网站上展示。目前,我循环遍历前端(javascript)中的所有条目,这会减慢一切。

实现这一点的最佳方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-26 10:57:59

通常,最好的方法是拥有一个预先聚合的文档。当您将新数据插入到“主”集合中时,此文档将同时更新。

使用您的示例,如果您只需要avg、max和min,则可以创建一个文档,如下所示:

代码语言:javascript
复制
{
  max: <max value seen so far>,
  min: <min value seen so far>,
  avg: <avg value seen so far>,
  sum: <total value seen so far>,
  n: <number of data points seen so far>
}

注意,为了能够计算新的平均值,您需要在上面的文档中使用sumn字段。如果您担心原子性,则每次插入新数据时都要更新该文档,并使用新的MongoDB 4.0 transactions feature

之后,查找最小值、最大值、平均值只需一个find()命令即可显示该文档的内容。

有关此想法的更复杂示例,请参阅Hierarchical Aggregation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54873200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档