2017-09-26 62 views
0

我有一个用例,其中集合中的一组记录需要在指定的时间间隔后被删除。 例如:超过10小时的记录每10小时删除一次。在MongoDB中对一个集合中的记录进行分区

我们尝试了基于ID的删除,但发现它很慢。

有分区集合中的记录和删除分区的和需要蒙戈时

回答

0

的MongoDB目前不支持分区的方式,有一个JIRA票添加为特征(SERVER-2097) 。

一个解决方案是利用多个基于时间的集合,以与分区类似的方式循环集合。通常我们会这样做,当你通常只查询这些基于时间的集合中的一个或几个时。如果您经常需要阅读多个集合,则可以添加一些包装代码来简化该集合。

还有TTL Indexes,它利用mongod服务器中的后台线程为您处理删除。

由_id造成的删除可能由于多种原因而变得缓慢,并且可能需要在原始问题之外进行更多调查。

相关问题