mongo 쉘의 모든 데이터베이스를 나열하는 방법은 무엇입니까?


204

특정 데이터베이스에 모든 컬렉션나열 하는 방법을 알고 있지만 MongoDB 셸에서 사용 가능한 모든 데이터베이스를 어떻게 나열합니까?


2
그것은 show dbs몽고 콘솔에 있으며, 질문을 게시하기 전에 mongodb 태그 위키useful links섹션을 통해 가십시오. 때로는 솔루션에 더 빨리 도달하는 데 도움이 될 수 있습니다.
Robert Christopher

답변:


244

mongoDB 콘솔에 모든 데이터베이스를 나열하는 것은 명령을 사용하고 show dbs있습니다.

이에 대한 자세한 정보는 mongo 쉘 에서 사용할 수있는 Mongo Shell 명령 헬퍼 를 참조하십시오 .


15
그리고 mongodb를 설치하고 실행 중으로 db현재 데이터베이스가 표시되는 것을 혼동하는 사람 (나 같은 사람)에게는 test여기에 설명되어있는이 페이지의 명령을 통해 나열되지 않습니다. stackoverflow.com/q/38726310/73226
Martin Smith

3
어떻게 지구상
유언장을 얻는가

2
@JamieHutber 당신은 mongo( mongo --nodb데이터베이스에 연결하지 않기 위해) 커맨드 라인 에 입력하여 쉘을 얻는다
magikMaker

show dbs, 문서에 갔을 때 show dbs어디에서나 명령을 찾을 수 없었기 때문에 간단한 것으로 여기에 와야했습니다 . '문서'는 때때로 매우 실망 스러울 수 있습니다.
MadHatter

이 명령은 --eval대화 형 쉘에서만 작동하지 않습니다 . 이 답변의 옵션이 작동합니다 (출력 형식이 다름) stackoverflow.com/a/32192253/1837991
Gert van den Berg

55

MongoDB 쉘 버전 3.0.5의 경우 쉘에 다음 명령을 삽입하십시오.

db.adminCommand('listDatabases')

또는 대안 적으로 :

db.getMongo().getDBNames()

2
당신이 당신의 껍질에 있고 이름 만 원한다면 : mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop

50

데이터베이스 목록의 경우 :

show databases
show dbs

테이블 / 컬렉션 목록 :

show collections
show tables
db.getCollectionNames()

31

명령 행 문제에서

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
}

2
자동화 된 것을 실행하기위한 최고의 솔루션 (먼저 몽고 쉘 모드로 들어 가지 않고)
herm

5

쉘에 mongodb 데이터베이스를 나열하려면

 show databases     //Print a list of all available databases.
 show dbs   // Print a list of all databases on the server.

더 많은 기본 명령

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.

0

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()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.