mongodb根据一个字段的范围进行数量统计

发布于 2022-09-04 11:45:52 字数 179 浏览 8 评论 0

我的模型里有个字段是时间戳,我想根据这个字段统计每一天的数据,数据量在百万级。
目前我能想到的是全部查询出来,然后自己对数据进行排序分组。本来想用Aggregate来做,但是把操作符看了一遍不知道怎么组合起来才能实现,然后还有就是mapReduce,查了下得知mapReduce查询很慢,所以不知道怎么办了。希望大家可以推荐一个最好的方式

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

围归者 2022-09-11 11:45:52

什么样的数据?如果是时序数据,历史情况不会变,建议每天统计一次,把结果存下来以后直接取用即可,不要每次都去进行不必要的运算。
aggregate是推荐的取代map/reduce的聚合框架。如果以上假设成立,楼上的办法也可以达成。但是要注意count在分片集中给出的是不精确结果,想要精确结果还是请用aggregate

爱你不解释 2022-09-11 11:45:52

统计每一天的数据总数吗?, 时间戳是存入mongodb 是int32 or int64吗? 满足以上条件,可以如下

db.find("timeStamp":{"$lt":456,"$gte":123}).count()

count() 是聚合的一种

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文