回答:
できるよ...
JavaScript(シェル):
db.getCollectionNames()
Node.js:
db.listCollections()
非JavaScript(シェルのみ):
show collections
非JavaScriptと呼ぶ理由は次のとおりです。
$ 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
db.listCollections()
、ここで示した答えとして、グリーンでチェック!そうでなければ、人々は私が数えきれないほど同じ間違いをし、彼らがこの答えにたどり着いたとき、それを使ってみるdb.getCollectionNames
とエラーが戻ってきdb.collectionNames is not a function
ます。
db.getCollectionNames()
それでもシェルの正しい答えです。
> show collections
コマンドラインヘルプ(help
)に記載されているように、現在選択されているDB内のすべてのコレクションが一覧表示されます。
content 1145.586MB / 1506.855MB
例えば。
使用している現在のデータベースのすべてのコレクションを一覧表示するにはどうすればよいですか?
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
は、リレーショナルdbmsのバックグラウンドを持っている人には非常に役立ちます。
use
データベースを使用することであり、コレクションとは関係ありません
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
現在のデータベースのすべてのコレクションが表示されます。アプリケーションからすべてのコレクションリストを取得する場合は、MongoDBデータベースメソッドを使用できます。
db.getCollectionNames()
MongoDBシェルヘルパーの詳細については、mongo
シェルのクイックリファレンスをご覧ください。
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')
)
}
)
"
注:これは、ワンライナーとして非常にうまく機能します。(しかし、スタックオーバーフローではひどいように見えます。)
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()
db.getCollectionNames()
と[ "users" ]
、ユーザーコレクションがあるので取得します。私が試してみるとdb.listCollections()
、結果は次のようになります[thread1] TypeError: db.listCollections is not a function : @(shell):1:1
mongo
シェルからすべてのコレクションを一覧表示します。
- db.getCollectionNames()
- コレクションを表示
- テーブルを表示
注:コレクションは、あなたがしている現在のデータベースから表示されます 現在、
データベースへの切り替え用。
沿って:
{your_database_name}の例を使用:
use friends
どこ friends
データベースの名前です。
次に書いてください:
db.getCollectionNames()
show collections
コレクションの名前が表示されます。
> show dbs
anuradhfirst 0.000GB
local 0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
mongo
。これで接続が開始されます。show dbs
コマンドを実行します。これにより、すべての既存/利用可能なデータベースが表示されます。database
必要なものを選択します。上記ではそうですanuradhfirst
。次にを実行しuse anuradhfirst
ます。これにより、目的のデータベースに切り替わります。show collections
コマンドを実行します。これによりcollections
、選択したデータベースのすべてが表示されます。コレクションを表示
このコマンドは通常、データベースに切り替えた後、MongoDBシェルで機能します。
WiredTigerストレージエンジンを使用したMongoDB 3.0デプロイメントの場合、
db.getCollectionNames()
3.0より前のバージョンのmongoシェルまたは3.0互換バージョンより前のバージョンのドライバーから実行すると、db.getCollectionNames()
既存のコレクションがある場合でもデータは返されません。
詳細については、を参照してくださいこの。
show collections
または
show tables
または
db.getCollectionNames();
私listCollections
はこの目的で(MongoDB 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)})
これにより柔軟性が高まると思います。
続きを読む:listCollections
1. show collections; // Display all collections
2. show tables // Display all collections
3. db.getCollectionNames(); // Return array of collection. Example :[ "orders", "system.profile" ]
すべてのコレクションの詳細情報:
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
検索文字列に基づいてコレクションリストを一覧表示します。
db.getCollectionNames().filter(function (CollectionName) { return /<Search String>/.test(CollectionName) })
例: 名前に「import」を持つすべてのコレクションを検索します
db.getCollectionNames().filter(function (CollectionName) { return /import/.test(CollectionName) })
mongo
シェルから次のコマンドを使用します。
show collections