MongoDB - 从上限集合中捕获掉落的对象

时间:2011-04-14 15:14:31

标签: collections mongodb

引用MongoDB docs on Capped Collections

  

一旦空间得到充分利用,   新添加的对象将替换   集合中最古老的对象。

有没有办法在覆盖之前捕获上限集合的“已删除”对象?我感兴趣的是实现一系列汇总集合。例如

Hourly --> Daily --> Weekly --> Monthly  etc.

所以当从Hourly集合中删除一个对象时,我想捕获它并将其聚合到Daily集合中。

提前致谢。

//尼古拉斯

2 个答案:

答案 0 :(得分:3)

您必须在代码中而不是在MongoDB中实现该功能。

我认为Capped Collections不是您用例的正确解决方案。

可以插入到上限集合中,同时插入“普通”集合,并将它们聚合为每小时/每日,每周,每月等...使用map reduce。

答案 1 :(得分:2)

根据MongoDB开发人员的说法,你不能这样做:

http://groups.google.com/group/mongodb-user/browse_thread/thread/aec8d0c85f58d89e/d6701df083eb4679?fwc=1

  

我感兴趣的是实现一系列汇总集合。

正如亚历克斯所说,解决这个问题的一种方法是使用MapReduce。另一种方法是拥有不同的集合,例如每天,例如logs20110414,让您的应用程序管理对相应集合的读/写。