MongoDBシェルで、現在使用しているデータベースのすべてのコレクションをどのように一覧表示するのですか。
できるよ...
JS(シェル):
db.getCollectionNames()
node.js:
db.listCollections()
非JS(シェルのみ):
show collections
私が非JSと呼んでいるのは、次の理由による。
$ mongo prodmongo/app --eval "show collections"
MongoDB Shell version: 3.2.10
connecting to: prodmongo/app
2016-10-26T19:34:34.886-0400 E QUERY [thread1] SyntaxError: missing ; before statement @(Shell eval):1:5
$ mongo prodmongo/app --eval "db.getCollectionNames()"
MongoDB Shell version: 3.2.10
connecting to: prodmongo/app
[
"Profiles",
"Unit_Info"
]
あなたが本当にその甘い、甘いshow collections
出力が欲しいならば、あなたはすることができます:
$ mongo prodmongo/app --eval "db.getCollectionNames().join('\n')"
MongoDB Shell version: 3.2.10
connecting to: prodmongo/app
Profiles
Unit_Info
> show collections
コマンドラインヘルプ(help
)に記載されているように、現在選択されているDB内のすべてのコレクションを一覧表示します。
現在使用しているデータベースのすべてのコレクションをどのように一覧表示するのですか。
show collections
show tables
db.getCollectionNames()
show dbs
use databasename
show collections
出力:
collection1 collection2 system.indexes
(または)
show tables
出力:
collection1 collection2 system.indexes
(または)
db.getCollectionNames()
出力:
[ "collection1", "collection2", "system.indexes" ]
use collectionname
> show tables
キャメロンの答えと同じ結果になります。
他の人々によって提案されたオプションとは別に:
show collections //output every collection
show tables
db.getCollectionNames() //shows all collections as a list
各コレクションがどのように作成されたかを知りたい場合には、とても便利な方法がもう1つあります(例えば、特定のサイズの上限付きコレクションです)
db.system.namespaces.find()
まずデータベースを使用して、その中にあるすべてのコレクション/テーブルを表示する必要があります。
>show dbs
users 0.56787GB
test (empty)
>db.test.help() // this will give you all the function which can be used with this db
>use users
>show tables //will show all the collection in the db
show tables
またはshow collections
を使用できます
試してください:
help // To show all help methods
show dbs // To show all dbs
use dbname // To select your db
show collections // To show all collections in selected db
MongoDbデータベース内のすべてのコレクションを表示するために使用されるコマンドは次のとおりです。
show collections
Show collectionsコマンドを実行する前に、データベースを選択する必要があります。
use mydb //mydb is the name of the database being selected
すべてのデータベースを見るには、次のコマンドを使います。
show dbs // shows all the database names present
詳細については、このリンクを参照してください: http://docs.mongodb.org/manual/tutorial/getting-started/
Mongodb Shell(コマンドライン)からすべてのコレクションを見たい場合は、Shellヘルパーを使用してください。
show collections
現在のデータベースのすべてのコレクションを表示します。アプリケーションからすべてのコレクションリストを取得したい場合は、mongodbデータベースメソッドを使用できます。
db.getCollectionNames()
詳細については、mongodbシェルヘルパーを参照してください。 http://docs.mongodb.org/manual/reference/mongo-Shell/
Mongoshell上の以下のコマンドは一般的です
show databases
show collections
また、
show dbs
use mydb
db.getCollectionNames()
場合によっては、名前空間全体の一部であるコレクションのインデックスだけでなく、すべてのコレクションを表示すると便利です。
これを行う方法は次のとおりです。
db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
3つのコマンドとこのスニペットの間には、十分に網羅されているはずです。
最大の混乱の1つは、mongo
(または対話型/ハイブリッドシェル)とmongo --eval
(または純粋なJavaScriptシェル)でできることの違いです。私はこれらの役に立つドキュメントを手元に置いておきます。
これはshow
コマンドを使用して別の方法でスクリプトを作成する例です。
# List all databases and the collections in them
mongo --eval "
db.getMongo().getDBNames().forEach(
function(v, i){
print(
v + '\n\t' +
db.getSiblingDB(v).getCollectionNames().join('\n\t')
)
}
)
"
注:それはonelinerとして本当にうまくいきます。 (しかしStackOverflowはひどいようです)
mongo --eval "db.getMongo().getDBNames().forEach(function(v, i){print(v+'\n\t'+db.getSiblingDB(v).getCollectionNames().join('\n\t'))})"
2.x以上では、できます
db.listCollections()
1.xではできます
db.getCollectionNames()
データベースに切り替えるには: - use {your_database_name}の例:
use friends
ここで、friendsはデータベースの名前です。
それから書く: -
db.getCollectionNames()
show collections
これはあなたにコレクションの名前を与えるでしょう。
mongo Shellからのすべてのコレクションをリストする:
- db.getCollectionNames()
- コレクションを表示
- テーブルを表示
注:コレクションは現在のデータベースから現在の場所を示します 現在
コレクションを表示
データベースに切り替えたら、このコマンドは通常mongo Shellで機能します。
> show dbs
anuradhfirst 0.000GB
local 0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
mongo
を使用してmongoデータベースに接続すると、接続が開始されます。show dbs
コマンドを実行してください、これはあなたにすべての終了/利用可能なデータベースを表示します。database
を選択します。その上にanuradhfirst
と入力し、use anuradhfirst
を実行すると、目的のデータベースに切り替わります。show collections
コマンドを実行すると、選択したデータベース内のすべてのcollections
が表示されます。 1. show collections; //Display all collection
2. show tables //Display all collection
3. db.getCollectionNames(); // Retuen array of collection Example :[ "orders", "system.profile" ]
すべてのコレクションの詳細情報
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
WiredTigerストレージエンジンを使用したMongoDB 3.0の展開では、の場合、3.0より前のバージョンのmongo Shell または3.0互換バージョンより前のバージョンのドライバーから
db.getCollectionNames()
を実行する場合たとえ既存のコレクションがあっても、db.getCollectionNames()
はデータを返しません。
詳しくは this を参照してください。
私はこの目的のためにlistCollections
(mongo 3.0以上をサポートします)を使います。
例:
db.runCommand({ listCollections: 1, filter: {}, nameOnly: true });
コレクションのインデックスのようなより多くの情報を取得するには:
db.runCommand({ listCollections: 1, filter: {}, nameOnly: false });
コレクション名だけを印刷するには
db.runCommand({ listCollections: 1, filter: {}, nameOnly: true }).cursor.firstBatch.forEach(v => {print(v.name)})
これにより、柔軟性が増します。
続きを読む: https://docs.mongodb.com/manual/reference/command/listCollections/
mongo Shellから次のコマンドを使用します。 - show collections