我知道如何列出一个特定的数据库中的所有集合,但我如何列出MongoDB shell中所有可用的数据库?
当前回答
对于MongoDB shell 3.0.5版本,在shell中插入以下命令:
db.adminCommand('listDatabases')
或者:
db.getMongo().getDBNames()
其他回答
有几个命令列出MongoDB shell中的所有dbs。
首先,使用“mongo”命令启动Mongodb shell。
·
然后使用下列任意命令列出所有db。
show dbs 显示数据库 db。adminCommand({listDatabases: 1, nameOnly: true})
详情请点击这里
谢谢你!
数据库列表:
show databases
show dbs
表格/收藏列表:
show collections
show tables
db.getCollectionNames()
对于MongoDB shell 3.0.5版本,在shell中插入以下命令:
db.adminCommand('listDatabases')
或者:
db.getMongo().getDBNames()
从命令行问题
mongo --quiet --eval "printjson(db.adminCommand('listDatabases'))"
它给出输出
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 978944,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 77824,
"empty" : false
},
{
"name" : "meteor",
"sizeOnDisk" : 778240,
"empty" : false
}
],
"totalSize" : 1835008,
"ok" : 1
}
要获得用于下游处理的所有数据库的垂直列表,请执行此操作
mongo --quiet --eval "printjson(db.adminCommand('listDatabases'))" | jq '.databases[].name' | tr -d '"'
哪个给出下面列出所有数据库的输出
admin
local
meteor
我已经找到了一个解决方案,其中admin()/others不起作用。
const { promisify } = require('util');
const exec = promisify(require('child_process').exec)
async function test() {
var res = await exec('mongo --eval "db.adminCommand( { listDatabases: 1 }
)" --quiet')
return { res }
}
test()
.then(resp => {
console.log('All dbs', JSON.parse(resp.res.stdout).databases)
})
test()
推荐文章
- js的Mongoose.js字符串到ObjectId函数
- mongodb中使用ISODate的日期查询似乎无法正常工作
- 如何更新文档数组中的对象(嵌套更新)
- 在猫鼬模式中添加created_at和updated_at字段
- 不可重复读和幻影读的区别是什么?
- 外键约束:何时使用ON UPDATE和ON DELETE
- 连接查询vs多个查询
- MySQL:在同一个MySQL实例上克隆MySQL数据库
- 如何更新mongodb中的多个数组元素
- MongoDB和Mongoose的区别
- 优化PostgreSQL进行快速测试
- 表被标记为崩溃,应该修复
- 在Android SQLite中处理日期的最佳方法
- 使用{merge: true}设置的Firestore与更新之间的差异
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在