当我们运行show dbs
命令时,x-development
数据库不会出现。然后当我们从shell中删除数据库时,它仍然允许我们再次访问它:
> use x-development
switched to db x-development
> db.dropDatabase()
{ "dropped" : "x-development", "ok" : 1 }
> use x-development
switched to db x-development
>
为什么会这样?我们在mongo 2.2上。
我们正在尝试删除数据库,因为它出现在mongostat
下,我们希望确保此数据库不占用服务器资源:
[root@mongo]# mongostat
connected to: 127.0.0.1
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn time
0 5 0 0 0 1 1 2.11g 4.86g 464m 0 x-development:0.0% 0 0|0 0|0 62b 2k 3 11:42:57
0 0 0 0 0 1 0 2.11g 4.86g 464m 0 x-development:0.0% 0 0|0 0|0 62b 2k 3 11:42:58
0 0 0 0 0 1 0 2.11g 4.86g 464m 0 x-development:0.0% 0 0|0 0|0 62b 2k 3 11:42:59
所以真正的问题是:如果数据库不存在,为什么这个数据库出现在mongostat
下?
答案 0 :(得分:3)
> db.dropDatabase()
...确实丢弃了数据库。 use
可以切换到任何数据库,无论是否存在,直到您实际插入了重建数据库的内容。
>显示dbs
本地(空)>使用开发 切换到db dev
>显示dbs
本地(空)> db.test.insert({一个:1})
>显示dbs
dev 0.203125GB
本地(空)> db.dropDatabase()
{“drop”:“dev”,“ok”:1}>显示dbs
本地(空)
答案 1 :(得分:0)
在Mongo中,您不会显式创建数据库。您只是开始使用它(例如通过发出use
语句)并自动创建它。
如果您不查询,数据库将不会使用任何资源。所以,我认为你不应该担心它。