如何显示所有可用的数据库列表(即使未在mongoDB中使用)?

时间:2019-01-17 09:01:39

标签: mongodb mongodb-query

如何显示所有可用的数据库列表,即使在mongoDB中未使用它,或者即使没有新创建的数据库的用户也没有任何集合?

> show dbs;
STUDENT  0.000GB
TEACHER  0.000GB
admin    0.000GB
config   0.000GB
local    0.000GB
test     0.000GB
> use newtest
switched to db newtest
> show dbs;
STUDENT  0.000GB
TEACHER  0.000GB
admin    0.000GB
config   0.000GB
local    0.000GB
test     0.000GB

在创建newtest试图重新显示所有数据库之后,我首先列出了所有数据库,但此处未显示原因?

2 个答案:

答案 0 :(得分:0)

use newtest不会创建数据库,它只是为后续命令设置数据库上下文。

您必须向db写一些东西才能创建它;例如:

> use newtest
switched to db newtest
> show dbs
admin            0.000GB
config           0.000GB
local            0.000GB
> db.test.insert({a: 1})
WriteResult({ "nInserted" : 1 })
> show dbs
admin            0.000GB
config           0.000GB
local            0.000GB
newtest          0.000GB

答案 1 :(得分:0)

  • 在将第一个文档插入数据库中的集合后,数据库将创建并存在。数据库和集合是隐式创建的;但是,在客户端中创建数据库或集合对象不会创建数据库或集合。使用不会创建新的数据库文件。

  • 空数据库未显示在show dbs的输出中。这部分取决于存储引擎。 MMAPv1,不可能有一个现成的但空的数据库:您不能创建数据库,除非通过插入数据。即使以后删除该数据,也将保留少量内部开销。一个例外是在3.0之前,show dbs在某些情况下将admin数据库报告为空,但没有对应的数据库。 WiredTiger不会报告没有数据的数据库,其他存储引擎在这里可能会有不同的行为。