mongodb - show dbs 和 show databases 之间的 MongoDB shell 区别
问题描述
根据MongoDb 文档,MongoDB shell 命令:
show dbs
打印服务器上所有数据库的列表。
和
show databases
打印所有可用数据库的列表。
我很困惑-从我阅读和理解的内容来看,这些不是相同的效果命令-对吗?show databases是不是show dbs的别名?
可能存在由show dbs列出的数据库,该数据库不可用且未由show databases列出,对吗?
如果是这样,数据库如何可能在服务器上但不可用 - 用户的访问权限?这就是显示数据库过滤背后的原因吗?
解决方案
我认为这两个命令之间没有区别。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。
推荐阅读
- python - 将数据帧动态分配给 for 语句中的对象
- list - haskell 函数的时间复杂度
- awk - 我的 awk 脚本不打印 0 和 NR 为 0
- c# - 如何执行sql查询以匹配包含单引号(')的列值
- sharepoint-online - 如何使用 JS 或 JQuery 清除缓存
- javascript - 如何在 muidatatables 中添加图像?
- azure-devops - Azure DevOps REST API - 运行管道传递分支名称
- javascript - 自动编译表单中可变数量的字段
- powershell - Powershell本地数组重新初始化
- plsql - dbms_sql 的限制