【发布时间】:2018-05-25 11:49:46
【问题描述】:
我有大量的时间序列数据,我想每天计算。
例如,假设我想查询从 3 天到现在的日期范围。假设 3 天前有 1000 个错误,2 天前有 2000 个错误,今天有 500 个。我的对象有一个“创建”日期字段。
为此我可以做到
MyModel.count( { created: { $gte: threeDaysAgo, $lte: today } })
然后重复另外两天。当用户想要搜索 300 天的跨度时,这会成为一个问题——我必须进行 300 次操作。所以我想跳过个别查询。
是否有 Mongoose / MongoDB 操作可以将这些总和返回给我,而无需每天单独调用?
【问题讨论】:
-
我不知道。您可以查询 3 天并选择创建日期,然后根据结果计算您的计数。
-
谢谢吉姆,没想到这一点。不过有点担心性能 - 可能有 200,000 多个对象被退回。但我想只选择创建的字段会提高性能。
-
如果太多,三个“计数”事务可能会更好。