1

show dbsコマンドを実行しても、x-developmentデータベースは表示されません。次に、シェルからデータベースを削除しても、再びアクセスできます。

> 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本当の問題は、データベースが存在しないのに、なぜこのデータベースが表示されるのですか?

4

2 に答える 2

3
> db.dropDatabase()

...実際にデータベースを削除します。use既存かどうかに関係なく、任意のデータベースに切り替えることができます。データベースが再作成されるのは、実際に何かを挿入するまでではありません。

> dbs
ローカルを表示 (空)

> dev
を db dev に切り替えて使用

> dbs
ローカルを表示 (空)

> db.test.insert({a:1})

> dbs
dev 0.203125GB
ローカル (空)を表示

> db.dropDatabase()
{「ドロップ」:「dev」、「ok」: 1 }

> dbs
ローカルを表示 (空)

于 2013-05-31T07:37:08.660 に答える
0

Mongo では、データベースを明示的に作成しません。use使用を開始するだけで (ステートメントを発行するなど)、自動的に作成されます。

クエリを実行しない場合、データベースはリソースを使用しません。ですから、気にしなくていいと思います。

于 2013-05-31T07:36:52.903 に答える