MongoDBですべてのコレクションとその内容を表示することは可能ですか?
一つ一つ見せる唯一の方法はありますか?
端末/コマンドラインに入ったら、使用したいデータベース/コレクションに次のようにアクセスします。
show dbs
use <db name>
show collections
コレクションを選択して次のように入力すると、そのコレクションのすべての内容が表示されます。
db.collectionName.find()
MongoDBクイックリファレンスガイド に詳しい情報があります。
ステップ1:すべてのデータベースを見る
show dbs
手順2:データベースを選択する
use your_database_name
ステップ3:コレクションを表示する
show collections
これにより、選択したデータベース内のすべてのコレクションが一覧表示されます。
ステップ4:すべてのデータを見る
db.collection_name.find()
または
db.collection_name.find().pretty()
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で出力します。
以下のクエリを書く前にまず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
}
こちらです:
db.collection_name.find().toArray().then(...function...)
これはするでしょう:
db.getCollectionNames().forEach(c => {
db[c].find().forEach(d => {
print(c);
printjson(d)
})
})
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()
でも同様のアプローチを使用できます。これは、非常に多くのデータがある場合に非常に便利です。