引用MongoDB docs on Capped Collections:
一旦空间得到充分利用, 新添加的对象将替换 集合中最古老的对象。
有没有办法在覆盖之前捕获上限集合的“已删除”对象?我感兴趣的是实现一系列汇总集合。例如
Hourly --> Daily --> Weekly --> Monthly etc.
所以当从Hourly集合中删除一个对象时,我想捕获它并将其聚合到Daily集合中。
提前致谢。
//尼古拉斯
答案 0 :(得分:3)
您必须在代码中而不是在MongoDB中实现该功能。
我认为Capped Collections不是您用例的正确解决方案。
您可以插入到上限集合中,同时插入“普通”集合,并将它们聚合为每小时/每日,每周,每月等...使用map reduce。
答案 1 :(得分:2)
根据MongoDB开发人员的说法,你不能这样做:
我感兴趣的是实现一系列汇总集合。
正如亚历克斯所说,解决这个问题的一种方法是使用MapReduce。另一种方法是拥有不同的集合,例如每天,例如logs20110414,让您的应用程序管理对相应集合的读/写。