ฉันรู้วิธีแสดงรายการคอลเล็กชันทั้งหมดในฐานข้อมูลเฉพาะแต่ฉันจะแสดงรายการฐานข้อมูลที่มีอยู่ทั้งหมดใน MongoDB เชลล์ได้อย่างไร
ฉันรู้วิธีแสดงรายการคอลเล็กชันทั้งหมดในฐานข้อมูลเฉพาะแต่ฉันจะแสดงรายการฐานข้อมูลที่มีอยู่ทั้งหมดใน MongoDB เชลล์ได้อย่างไร
คำตอบ:
รายชื่อฐานข้อมูลทั้งหมดใน MongoDB show dbs
คอนโซลใช้คำสั่ง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้อ้างอิงผู้ช่วยคำสั่ง Mongo Shellที่สามารถใช้ในเชลล์ mongo
db
แสดงฐานข้อมูลปัจจุบันtest
แต่นี่ไม่ได้อยู่ในรายการผ่าน comnmands ใด ๆ ในหน้านี้ที่อธิบายไว้ที่นี่stackoverflow.com/q/38726310/73226
mongo
ในบรรทัดคำสั่ง (จากmongo --nodb
การไม่เชื่อมต่อกับฐานข้อมูล)
show dbs
เพราะเมื่อฉันไปที่เอกสารฉันก็ไม่สามารถหาshow dbs
คำสั่งได้ทุกที่ 'เอกสาร' นั้นค่อนข้างน่าผิดหวังในบางครั้ง
--eval
, เพียงแค่บนเชลล์แบบโต้ตอบ ตัวเลือกของคำตอบนี้ใช้งานได้ (รูปแบบเอาต์พุตแตกต่างกัน) stackoverflow.com/a/32192253/1837991
สำหรับ MongoDB เชลล์เวอร์ชัน 3.0.5 ให้ใส่คำสั่งต่อไปนี้ในเชลล์:
db.adminCommand('listDatabases')
หรืออีกทางหนึ่ง:
db.getMongo().getDBNames()
mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'
HTH
สำหรับรายการฐานข้อมูล:
show databases
show dbs
สำหรับตาราง / รายการรวบรวม:
show collections
show tables
db.getCollectionNames()
จากปัญหาบรรทัดคำสั่ง
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
}
ในการแสดงรายการฐานข้อมูล 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.
ฉันพบวิธีแก้ไขปัญหาหนึ่งโดยที่ 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()
show dbs
ในคอนโซล Mongo โปรดไปผ่านuseful links
ส่วนในMongoDB แท็กวิกิพีเดียก่อนที่จะโพสต์คำถามบางครั้งอาจจะช่วยให้คุณเข้าถึงวิธีการแก้ปัญหาได้เร็วขึ้น