如何显示所有可用的数据库列表,即使在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试图重新显示所有数据库之后,我首先列出了所有数据库,但此处未显示原因?
答案 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不会报告没有数据的数据库,其他存储引擎在这里可能会有不同的行为。