Tôi biết cách liệt kê tất cả các bộ sưu tập trong một cơ sở dữ liệu cụ thể , nhưng làm cách nào để liệt kê tất cả các cơ sở dữ liệu có sẵn trong trình bao MongoDB?
Tôi biết cách liệt kê tất cả các bộ sưu tập trong một cơ sở dữ liệu cụ thể , nhưng làm cách nào để liệt kê tất cả các cơ sở dữ liệu có sẵn trong trình bao MongoDB?
Câu trả lời:
Liệt kê tất cả các cơ sở dữ liệu trong bảng điều khiển mongoDB đang sử dụng lệnh show dbs
.
Để biết thêm thông tin về điều này, hãy tham khảo Trình trợ giúp Lệnh Mongo Shell có thể được sử dụng trong trình vỏ mongo.
db
cho thấy cơ sở dữ liệu hiện tại test
nhưng điều này không được liệt kê qua bất kỳ comnmands nào trên trang này được giải thích ở đây stackoverflow.com/q/38726310/73226
mongo
vào dòng lệnh ( mongo --nodb
để không kết nối với cơ sở dữ liệu)
show dbs
vì khi tôi đi đến các tài liệu tôi chỉ đơn giản là không thể tìm thấy show dbs
lệnh ở bất cứ đâu. Các "tài liệu" đôi khi có thể khá bực bội.
--eval
, chỉ trên một vỏ tương tác. Các tùy chọn của câu trả lời này không hoạt động (định dạng đầu ra là khác nhau) stackoverflow.com/a/32192253/1837991
Đối với phiên bản shell MongoDB 3.0.5, hãy chèn lệnh sau vào trình bao:
db.adminCommand('listDatabases')
Hay cách khác:
db.getMongo().getDBNames()
mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'
hth
Đối với danh sách cơ sở dữ liệu:
show databases
show dbs
Đối với danh sách bảng / bộ sưu tập:
show collections
show tables
db.getCollectionNames()
Từ vấn đề dòng lệnh
mongo --quiet --eval "printjson(db.adminCommand('listDatabases'))"
cung cấp đầu ra
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 978944,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 77824,
"empty" : false
},
{
"name" : "meteor",
"sizeOnDisk" : 778240,
"empty" : false
}
],
"totalSize" : 1835008,
"ok" : 1
}
Để liệt kê cơ sở dữ liệu mongodb trên shell
show databases //Print a list of all available databases.
show dbs // Print a list of all databases on the server.
Vài lệnh cơ bản hơn
use <db> // Switch current database to <db>. The mongo shell variable db is set to the current database.
show collections //Print a list of all collections for current database.
show users //Print a list of users for current database.
show roles //Print a list of all roles, both user-defined and built-in, for the current database.
Tôi đã tìm thấy một giải pháp, trong đó admin () / những người khác không làm việc.
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()
show dbs
trong bảng điều khiển mongo, vui lòng đi quauseful links
phần trong wiki thẻ mongodb , trước khi đăng câu hỏi, đôi khi có thể giúp bạn tiếp cận giải pháp nhanh hơn.