任何人都有一个方便的mongo
命令来删除数据库中早于 X 日期/ X 天的所有条目?
基本上有一个开发和生产数据库,我希望稍微修剪一下开发数据库以限制大小。
谢谢您的帮助!
你可以从 mongo shell 做这样的事情。
var older=Date.parse("2013-03-01"),collection=db.so,all=collection.find();
all.forEach(function(doc) { var ts = doc._id.getTimestamp();
if (ts < older) { collection.remove(doc); } });
上面的行(您将粘贴到 shell 中)将删除在 2013 年 3 月 1 日之前创建的指定集合 ( ) 中的所有文档。它依赖于每个都有嵌入collection=db.so
的事实(基于文档创建 ( docs )),可以检索和使用。ObjectId
timestamp
timestamp
您当然可以更改查询以查找文档中的特定时间戳字段。
if (doc.timestampField < older) { collection.remove(doc); } })
您可以使用 mongo 在指定时间后删除数据的概念,即通过设置 TTL 使集合中的数据过期。
请参考下面的链接这样做 http://docs.mongodb.org/manual/tutorial/expire-data/