在MongoDB中对集合中的记录进行分区

时间:2017-09-26 12:50:55

标签: mongodb partitioning

我有一个用例,需要在指定的时间间隔后删除集合中的一组记录。 例如:每10小时删除10小时以上的记录。

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

是否有办法对集合中的记录进行分区,并在Mongo

中根据需要删除分区

1 个答案:

答案 0 :(得分:2)

MongoDB目前不支持分区,有一个JIRA票据可以将其添加为功能(SERVER-2097)。

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

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

由于多种原因,_id的删除可能会很慢,并且可能需要在原始问题之外进行更多调查。