web-dev-qa-db-ja.com

MongoDBすべてのコレクションのすべての内容を表示

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

一つ一つ見せる唯一の方法はありますか?

110
Reno

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

show dbs
use <db name>
show collections

コレクションを選択して次のように入力すると、そのコレクションのすべての内容が表示されます。

db.collectionName.find()

MongoDBクイックリファレンスガイド に詳しい情報があります。

197
sharkySharks

ステップ1:すべてのデータベースを見る

show dbs

手順2:データベースを選択する

use your_database_name

ステップ3:コレクションを表示する

show collections

これにより、選択したデータベース内のすべてのコレクションが一覧表示されます。

ステップ4:すべてのデータを見る

db.collection_name.find() 

または

db.collection_name.find().pretty()
80
Debadatta
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で出力します。

27
Bruno_Ferreira

以下のクエリを書く前にまず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
}
4
Amit Kumar

こちらです:

db.collection_name.find().toArray().then(...function...)
1

これはするでしょう:

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

mongo Shellを使用している場合は、別のアプローチをお勧めします。

最初に別の答えとして:use my_database_nameその後:

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

このクエリは、次のようなものを表示します。

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

db.getCollectionInfos()でも同様のアプローチを使用できます。これは、非常に多くのデータがある場合に非常に便利です。

0
Juan de Dios