我有一个数据库,该数据库收集我和一些朋友玩的游戏的统计数据,这些统计数据每31天重置一次。我想弄清楚的是mongodb是否有建立每月数据库的方法。因此,每个月都会制作一个具有相同配置的新Db,只是具有空值,并将在该月中填充。
答案 0 :(得分:0)
由于您使用的是Windows 10,所以我建议使用Windows Task Scheduler运行脚本以在每个月初复制模板数据库。
在进入将要复制数据库的脚本之前,您需要创建一个模板数据库,该数据库将用作每个副本的源。在此示例中,我将简单地称为模板数据库stats-template
。创建它,然后根据需要进行设置。
现在您需要批处理脚本:
@echo off
set year=%date:~-4%
set month=%date:~4,2%
set newdb=stats-%year%-%month%
mongodump --db stats-template
mongorestore --db %newdb% dump/stats-template
rmdir /s /q dump
这将创建stats-template
数据库的转储(BSON数据),然后将该数据还原到名为stats-[year]-[month]
的新数据库(例如stats-2019-03
)中。还原后,它还会删除转储。
现在,您需要创建将每月运行一次此脚本的任务。
现在,您将在每月的第一天获得基于模板数据库的全新数据库。
答案 1 :(得分:-1)
您可以将具有ttl索引的字段添加到集合中的每个文档。时间到后,Mongodb将自动删除这些文档。 Documentation