如何通过window shell文件删除mongodb数据库

时间:2018-03-23 10:59:43

标签: windows mongodb

我在Windows 10平台上,我想每天删除我的数据库。为此,我将创建一个可执行的cron基本shell文件。但这对我不起作用。有没有猜到为什么它没有执行任务?

  

deletedb.sh(带扩展名的文件名)

#!/usr/bin/env mongo
var db = new Mongo().getDB("secondary");//secondary is my db name
db.dropDatabase();

1 个答案:

答案 0 :(得分:0)

您的示例看起来应该可以正常工作,假设您没有启用身份验证并且正在连接到侦听默认主机(localhost)和端口(27017)的服务器。

但是,运行new Mongo()会尝试创建一个新连接,如果刚刚连接,这个连接就没有用了。

您的示例可以简化为unix shell incantation:

#!/usr/bin/env bash
mongo localhost/secondary --eval "db.dropDatabase()"

如果您想要放弃预期的数据库,可以明确选择要删除的数据库:

#!/usr/bin/env bash
mongo localhost/secondary --eval "db.getSiblingDB('secondary').dropDatabase()"

如果您的目的是清理旧的测试数据,另一种考虑的方法是使用MongoDB的TTL (Time-To-Live) indexes在特定秒数或某个到期时间之后使集合中的数据到期。