mid*_*dev 3 mongodb mongodb-query
在我们公司,我们保留了8天的数据(有100万条记录).所以我们有一个cronjob,可以删除每天超过8天的文件.现在我们使用Published字段,并且此字段未编入索引.
完成排除100.000记录需要15分钟才能完成,我们发现这个操作太长了.
这是一个查询,其中'docs'是一个变量,包含我们不想删除的文档数组.'theDate'变量是八天前的日期.
records.remove( { "Published" : { $lte : theDate }, "_id" : { $nin : docs } }
Run Code Online (Sandbox Code Playgroud)
是否更好地使用_id字段(已编入索引)按顺序执行此操作?我们如何使用_id字段来执行相同的操作?
完全放弃Cron作业:这是TTL索引的工作.http://docs.mongodb.org/manual/core/index-ttl/
在该Published字段上创建一个TTL索引,expireAfterSeconds: 691200并观察您的文档在发布后8天自动删除.
如果您不想在发布后8天不加选择地删除所有文档,请保留您的Cron作业,并在该Published字段上创建一个简单的索引.
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |