MongoDB 모든 컬렉션의 모든 컨텐츠 표시


161

MongoDB에 모든 모음과 내용을 표시 할 수 있습니까?

하나씩 표시하는 유일한 방법입니까?

답변:


261

터미널 / 명령 줄에 있으면 다음과 같이 사용하려는 데이터베이스 / 컬렉션에 액세스하십시오.

show dbs
use <db name>
show collections

컬렉션을 선택하고 다음을 입력하여 해당 컬렉션의 모든 내용을보십시오.

db.collectionName.find()

MongoDB 빠른 참조 안내서 에 대한 자세한 정보는 여기를 참조 하십시오 .


이것을 정답으로 기재하십시오. cli를 통해 쿼리하지 않고 코드를 작성하여 모든 컬렉션의 모든 콘텐츠 만 볼 수 있습니다.
imbatman

18
제시된 컬렉션을 시각적으로 정리해야하는 경우 다음 사항도 권장합니다. db.collectionName.find().pretty()
Steven 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();
아담 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 쉘에 입력하십시오.

몽고

2 단계 : 모든 데이터베이스를 표시합니다.

DB 표시;

3 단계 : 데이터베이스 선택 :

'databases_name'을 사용하십시오.

4 단계 : 데이터베이스 통계

db.stats ()

5 단계 : 모든 컬렉션 (테이블)을 나열합니다.

컬렉션 표시

6 단계 : 특정 컬렉션의 데이터를 인쇄합니다.

db.'collection_name'.find (). pretty ()


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


4

이것은 할 것이다 :

db.getCollectionNames().forEach(c => {
    db[c].find().forEach(d => {
        print(c); 
        printjson(d)
    })
})

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.