MongoDBすべてのコレクションのすべてのコンテンツを表示


161

MongoDBですべてのコレクションとそのコンテンツを表示することは可能ですか?

1つずつ表示する唯一の方法はありますか?

回答:


261

ターミナル/コマンドラインに入ったら、次のように使用したいデータベース/コレクションにアクセスします。

show dbs
use <db name>
show collections

コレクションを選択し、次のように入力して、そのコレクションのすべてのコンテンツを表示します。

db.collectionName.find()

詳細については、MongoDBクイックリファレンスガイドをご覧ください。


これを正解と述べてください。すべてのコレクションのすべてのコンテンツを表示するには、
CLI

18
あなたが視覚的にあなたに提示コレクションを整理する必要がある場合は、私にもお勧めします: db.collectionName.find().pretty()
スティーブン・ヴェンティミリア

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();
アダム・シャムスディーン

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:すべてのデータベースを表示します。

データベースを表示します。

ステップ3:選択したデータベースの場合:

'databases_name'を使用

ステップ4:データベースの統計用。

db.stats()

ステップ5:すべてのコレクション(テーブル)を一覧表示します。

コレクションを表示

ステップ6:特定のコレクションからデータを印刷します。

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


9

以下のクエリを書く前に、最初にコマンドまたは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.