2012-06-29 77 views
0

对不起 - 我是新与蒙戈....MongoDB的 - 问题删除文档

我用它作为储存在我的web应用程序日志。我想定期运行rake任务来删除我的脚本自动网站检查。

我可以成功地拉动文件与感兴趣的PARAMS:

coll.find("params.from" => "sitecheck").to_a.count 
    => 5 

然而,他们不会滴!

coll.remove("params.from" => "sitecheck") 
    => true 
coll.find("params.from" => "sitecheck").to_a.count 
    => 5 

我知道我在做一些非常愚蠢的....帮助将apprecaited虽然:)

回答

1

想通了....我使用的是加盖集合。无法删除它...

+0

从加盖集合中删除文档是[使用限制]之一(http://www.mongodb.org/display/DOCS/Capped+Collections#CappedCollections-UsageandRestrictions)。这些文档会根据插入顺序自动超时([先入先出](http://en.wikipedia.org/wiki/FIFO))。 – Stennie

+0

我有一个自动化的网站检查器每30分钟击中网站。我希望偶尔删除它们以防止日志堵塞。除了删除这些对象的能力,有没有办法阻止MongoDB保存这些对象?或者“保存回调后”摆脱它们? – Brandon

+0

封顶的集合将使您的数据保持指定的字节大小(并且可选[max documents](http://www.mongodb.org/display/DOCS/Capped+Collections#CappedCollections-Options)),这是一种自动策略管理数据。在MongoDB 2.2中还有一个新的[TTL(生存时间)集合](http://docs.mongodb.org/manual/tutorial/expire-data/)。如果您想专门控制数据的删除时间,则应使用正常(未限制)的收集。加盖集合通常用于[日志记录](http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging)。 – Stennie