MongoDB แสดงเนื้อหาทั้งหมดจากคอลเลกชันทั้งหมด


161

เป็นไปได้ไหมที่จะแสดงคอลเลกชันทั้งหมดและเนื้อหาใน MongoDB?

เป็นวิธีเดียวที่จะแสดงทีละคน?

คำตอบ:


261

เมื่อคุณอยู่ในเทอร์มินัล / บรรทัดคำสั่งเข้าถึงฐานข้อมูล / คอลเลกชันที่คุณต้องการใช้ดังต่อไปนี้:

show dbs
use <db name>
show collections

เลือกคอลเล็กชันของคุณและพิมพ์รายการต่อไปนี้เพื่อดูเนื้อหาทั้งหมดของคอลเล็กชันนั้น

db.collectionName.find()

ข้อมูลเพิ่มเติมที่นี่บนMongoDB คู่มืออ้างอิงด่วน


โปรดระบุว่านี่เป็นคำตอบที่ถูกต้อง คุณสามารถดูเนื้อหาทั้งหมดจากคอลเลกชันทั้งหมดได้โดยการเขียนโค้ดไม่ใช่ทำการสืบค้นผ่าน cli
imbatman

18
หากคุณต้องการเป็นระเบียบเรียบร้อยขึ้นคอลเลกชันที่นำเสนอให้คุณฉันขอแนะนำ: db.collectionName.find().pretty()
สตีเวน Ventimiglia

2
โปรดทราบว่าวิธีนี้ใช้ไม่ได้หากคุณมีอักขระบางตัว (เช่นยัติภังค์) ในชื่อคอลเล็กชัน ในกรณีที่ใช้db["collection-name"].find()
Bossan

126

ขั้นตอนที่ 1: ดูฐานข้อมูลทั้งหมดของคุณ:

show dbs

ขั้นตอนที่ 2: เลือกฐานข้อมูล

use your_database_name

ขั้นตอนที่ 3: แสดงคอลเลกชัน

show collections

นี่จะแสดงรายการคอลเล็กชันทั้งหมดในฐานข้อมูลที่คุณเลือก

ขั้นตอนที่ 4: ดูข้อมูลทั้งหมด

db.collection_name.find() 

หรือ

db.collection_name.find().pretty()

3
ฉันแทนที่ชื่อ db ด้วยชื่อ db ของฉันซึ่งทำให้ฉันมีข้อผิดพลาด ดังนั้นอย่าทำสิ่งที่โง่เช่นฉัน: D, ติดdb.<collection_name>.find();
adam shamsudeen

33
var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++){    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print the json of each of its elements
}

ฉันคิดว่าสคริปต์นี้อาจได้รับสิ่งที่คุณต้องการ มันพิมพ์ชื่อของแต่ละคอลเลกชันแล้วพิมพ์องค์ประกอบใน json


19

ขั้นตอนที่ 1: ป้อนลงในเชลล์ MongoDB

Mongo

ขั้นตอนที่ 2: สำหรับการแสดงฐานข้อมูลทั้งหมด

แสดง dbs;

ขั้นตอนที่ 3: สำหรับฐานข้อมูลที่เลือก:

ใช้ 'database_name'

ขั้นตอนที่ 4: สำหรับสถิติฐานข้อมูลของคุณ

db.stats ()

ขั้นตอนที่ 5: รายการคอลเลกชันทั้งหมด (ตาราง)

แสดงคอลเล็กชัน

ขั้นตอนที่ 6: พิมพ์ข้อมูลจากการรวบรวมเฉพาะ

db.'collection_name'.find (). สวย ()


9

ก่อนที่จะเขียนแบบสอบถามด้านล่างก่อนเข้าไปใน cmd หรือ PowerShell ของคุณ

TYPE:
mongo             //To get into MongoDB shell
use <Your_dbName>      //For Creating or making use of existing db

ในการแสดงชื่อคอลเลกชันทั้งหมดให้ใช้ชื่อใดก็ได้จากตัวเลือกด้านล่าง: -

show collections  //output every collection
  OR
show tables
  OR
db.getCollectionNames() //shows all collections as a list

หากต้องการแสดงเนื้อหาหรือข้อมูลทั้งหมดของคอลเลกชันให้ใช้โค้ดด้านล่างที่ได้รับการโพสต์โดย Bruno_Ferreira

var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++) {    
   print('Collection: ' + collections[i]); // print the name of each collection
   db.getCollection(collections[i]).find().forEach(printjson); //and then print     the json of each of its elements
}

ทางออกที่ดีที่สุดแสดงเนื้อหาของคอลเลกชันของฉัน!
jjwallace



2

ฉันชอบวิธีอื่นถ้าคุณใช้mongoเชลล์:

ก่อนอื่นเป็นคำตอบอื่น: use my_database_nameจากนั้น:

db.getCollectionNames().map( (name) => ({[name]: db[name].find().toArray().length}) )

ข้อความค้นหานี้จะแสดงให้คุณเห็นดังนี้:

[
        {
                "agreements" : 60
        },
        {
                "libraries" : 45
        },
        {
                "templates" : 9
        },
        {
                "users" : 18
        }
]

คุณสามารถใช้วิธีการที่คล้ายกันกับdb.getCollectionInfos()มันค่อนข้างมีประโยชน์ถ้าคุณมีข้อมูลมากมาย


ใช้ count()แทนfind():db.getCollectionNames().map( (name) => ({[name]: db[name].count()}) )
hallman76
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.