【问题标题】:MongoDB - Capturing Dropped Objects From A Capped CollectionMongoDB - 从 Capped 集合中捕获丢弃的对象
【发布时间】:2011-08-05 15:29:53
【问题描述】:

引用MongoDB docs on Capped Collections:

一旦空间被充分利用, 新添加的对象将替换 集合中最旧的对象。

有什么方法可以在覆盖之前捕获上限集合的“丢弃”对象?我感兴趣的是实现一系列汇总集合。例如。

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

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

提前致谢。

//尼古拉斯

【问题讨论】:

  • 即使该功能不受支持,您也可以随时通过jira.mongodb.org 提交 JIRA,或者直接通过groups.google.com/group/mongodb-user 与开发人员讨论您的用例 - 他们的回复速度非常快。如果您为您的用例提供强有力的案例,它可能会尽快实施。

标签: collections mongodb


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回复。可惜不支持。 Capped Collections 有 2 个我真正需要的功能,即循环存储和可拖尾光标。
【解决方案2】:

根据 MongoDB 开发人员,您不能这样做:

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

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

正如 alex 所说,解决此问题的一种方法是使用 MapReduce。另一种方法是拥有不同的集合,例如每天,例如 logs20110414 并让您的应用程序管理对适当集合的读/写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    相关资源
    最近更新 更多