【发布时间】:2015-07-08 20:24:28
【问题描述】:
在我们公司,我们保留了 8 天的数据(大约有 100 万条记录),因此我们有一个 cronjob 可以每天删除超过 8 天的文档。现在我们正在使用 Published 字段并且此字段未编入索引。
删除 100.000 条记录大约需要 15 分钟,我们发现此操作太长。
这是一个查询,其中“docs”是一个变量,其中包含我们不想删除的文档数组。 'theDate' 变量是八天前的日期。
records.remove( { "Published" : { $lte : theDate }, "_id" : { $nin : docs } }
使用索引的_id字段会更好吗? 我们如何使用 _id 字段来执行相同的操作?
【问题讨论】:
-
你为什么不索引那个字段?
-
是的,你可能是对的,我们应该在 Published 字段上创建一个普通索引。我们不这样做的原因是试图使索引的数量和种类保持简单和合理。如果我们可以使用 _id 字段执行此操作,那就更好了。 :) 感谢您的评论。
标签: mongodb mongodb-query