根据MongoDb文档,MongoDB shell命令:
show dbs打印服务器上所有数据库的列表。
和
show databases打印所有可用数据库的列表。
我感到困惑--从我所读到的和理解到的--这些不是相同的效果命令--对吗?显示数据库不是显示dbs的别名
可能有一个由show 列出的数据库,这个数据库是不可用的,而不是显示数据库所列出的,对吗?
如果是这样的话,那么数据库在服务器上而不是用户的访问权限上是如何可能的呢?这就是显示数据库过滤的原因吗?
发布于 2018-11-30 23:45:56
我不认为这两条命令有什么区别。这两个操作都使用相同的选项调用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。
https://stackoverflow.com/questions/53563684
复制相似问题