จะแสดงรายการฐานข้อมูลทั้งหมดในเปลือก mongo ได้อย่างไร


204

ฉันรู้วิธีแสดงรายการคอลเล็กชันทั้งหมดในฐานข้อมูลเฉพาะแต่ฉันจะแสดงรายการฐานข้อมูลที่มีอยู่ทั้งหมดใน MongoDB เชลล์ได้อย่างไร


2
มันเป็นshow dbsในคอนโซล Mongo โปรดไปผ่านuseful linksส่วนในMongoDB แท็กวิกิพีเดียก่อนที่จะโพสต์คำถามบางครั้งอาจจะช่วยให้คุณเข้าถึงวิธีการแก้ปัญหาได้เร็วขึ้น
Robert Christopher

คำตอบ:


244

รายชื่อฐานข้อมูลทั้งหมดใน MongoDB show dbsคอนโซลใช้คำสั่ง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้อ้างอิงผู้ช่วยคำสั่ง Mongo Shellที่สามารถใช้ในเชลล์ mongo


15
และสำหรับทุกคน (เช่นฉัน) ที่เพิ่งติดตั้ง mongodb และสับสนว่าการรันdbแสดงฐานข้อมูลปัจจุบันtestแต่นี่ไม่ได้อยู่ในรายการผ่าน comnmands ใด ๆ ในหน้านี้ที่อธิบายไว้ที่นี่stackoverflow.com/q/38726310/73226
Martin สมิ ธ

3
คุณจะทำอย่างไรในโลกนี้ถึง: /
Jamie Hutber

2
@JamieHutber คุณได้รับเพื่อให้เปลือกโดยการพิมพ์mongoในบรรทัดคำสั่ง (จากmongo --nodbการไม่เชื่อมต่อกับฐานข้อมูล)
magikMaker

ใช่ฉันต้องมาที่นี่เพื่ออะไรที่เรียบง่ายเหมือนกันshow dbsเพราะเมื่อฉันไปที่เอกสารฉันก็ไม่สามารถหาshow dbsคำสั่งได้ทุกที่ 'เอกสาร' นั้นค่อนข้างน่าผิดหวังในบางครั้ง
MadHatter

คำสั่งนั้นไม่ทำงานใน a --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
ล่อ

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
ทางออกที่ดีที่สุดสำหรับการทำงานอัตโนมัติ (โดยไม่ต้องเข้าสู่โหมด mongo shell ก่อน)
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 () / อื่น ๆ ไม่ทำงาน

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.