2

有人请建议清理 12 小时以上的 mongodb 收集事件的命令。

我需要将其配置为 cronjob 的一部分,并将在每 12.00 PM 和 12.00 AM 执行。

4

1 回答 1

0

首先,您需要在文档中存储创建日期和时间。如果没有,请创建一个附加字段。拥有我收集的这个字段,您有两个选择:

  1. 使用 cron 运行作业,这将删除所有超过 12 小时的文档。类似的东西db.collection.remove({"createdAt" : {$gt : Date.now() - 43200000}})
  2. 为这个字段创建一个 TTL 索引,它会自动做所有很酷的事情。db.collection.ensureIndex( { "createdAt": 1 }, { "expireAfterSeconds": 43200 } )

我更喜欢第二种解决方案。

于 2013-08-09T21:22:46.563 回答