首页 > 解决方案 > 即使在 mongoDB 中没有使用,如何显示所有可用的数据库列表?

问题描述

如何显示所有可用的数据库列表,即使它没有在 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 后的所有数据库,尝试重新显示所有数据库,但这里没有显示为什么?

标签: mongodbmongodb-query

解决方案


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

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


推荐阅读