show dbs和show数据库之间的MongoDB Shell差异

时间:2018-11-30 19:25:42

标签: mongodb console

根据MongoDb documentation MongoDB shell命令:

show dbs
  

打印服务器上所有数据库的列表。

show databases
  

打印所有可用数据库的列表。


我很困惑-从我所阅读和理解的内容来看,这些命令不是相同的效果-对吗? 显示数据库不是显示数据库的别名吗?
可能是 show dbs 列出的数据库不可用,而 show database 却没有列出该数据库吗?

如果是这样,数据库怎么可能在服务器上但不可用-用户的访问权? 显示数据库过滤的背后是什么?

1 个答案:

答案 0 :(得分:0)

我认为这两个命令之间没有区别。这两个操作都使用相同的选项调用listDatabases命令。

增加日志级别,记录了show dbs命令:

2018-11-30T15:40:59.539-0800 I COMMAND  [conn23] command admin.$cmd appName: "MongoDB Shell" command: listDatabases { listDatabases: 1.0, $clusterTime: { clusterTime: Timestamp(1543621253, 1), signature: { hash: BinData(0, 0000000000000000000000000000000000000000), keyId: 0 } }, $db: "admin" } numYields:0 reslen:708 locks:{ Global: { acquireCount: { r: 22 } }, Database: { acquireCount: { r: 10 } } } protocol:op_msg 38ms

show databases已记录:

2018-11-30T15:41:01.722-0800 I COMMAND  [conn23] command admin.$cmd appName: "MongoDB Shell" command: listDatabases { listDatabases: 1.0, $clusterTime: { clusterTime: Timestamp(1543621253, 1), signature: { hash: BinData(0, 0000000000000000000000000000000000000000), keyId: 0 } }, $db: "admin" } numYields:0 reslen:708 locks:{ Global: { acquireCount: { r: 22 } }, Database: { acquireCount: { r: 10 } } } protocol:op_msg 5ms

作为参考,这来自MongoDB 3.6.7。