【发布时间】:2012-07-04 11:37:39
【问题描述】:
我们有一个系统,我们希望在其中维护拆分为单独通道的大量记录信息的统计信息,每个通道将有一个概述文档维护统计信息,包括小时、天、月和年的最大值和最小值层叠时尚。
我们可以维护一个文档来保存一个月的频道统计信息,其中将有一个每月最大/最小、31 个每日最大/分钟和 24 小时最大分钟的每一天。
使用 $inc 进行计数的文档非常适合就地原子更新,更新修饰符上的 $max 和 $min 可以解决我们的问题,但遗憾的是不可用。
我们可以将 max 和 min 保留在任务处理器中并发出 $set ,但这在协调系统中所有任务处理器(可能在不同的机器上)时存在问题,因此我们决定保留 mongo 作为主要参考。此外,在不同任务处理器实例上同时运行的两个单独任务可能会更新相同的统计信息。
因此我们正在寻找关于最佳解决方案的评论/建议(我们不一定会保留原始数据,因此无法进行后期处理)
每次我们需要更新时都读取、更新和保存?
使用 db Eval 执行 JavaScript 服务器端,通过传入单个值来更新 max/man 级联?
还有其他方法吗?
非常感谢您的帮助。
【问题讨论】:
标签: mongodb