MongoDB シェルで、現在使用しているデータベースのすべてのコレクションを一覧表示するにはどうすればよいですか?
23 に答える
できるよ...
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
> show collections
コマンド ライン ヘルプ ( help
) に記載されているように、現在選択されている DB 内のすべてのコレクションが一覧表示されます。
現在使用しているデータベースのすべてのコレクションを一覧表示するにはどうすればよいですか?
3つの方法
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 collections // Output every collection
show tables
db.getCollectionNames() // Shows all collections as a list
また、各コレクションがどのように作成されたかを知りたい場合に非常に便利な別の方法もあります (たとえば、特定のサイズの上限付きコレクションです)。
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
試す:
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
show tables
またはを使用できますshow collections
。
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 つのコマンドとこのスニペットの間で、十分にカバーされているはずです!
> show dbs
anuradhfirst 0.000GB
local 0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
- を使用して MongoDB データベースに接続します
mongo
。これで接続が開始されます。 - 次に
show dbs
コマンドを実行します。これにより、既存の/利用可能なデータベースがすべて表示されます。 - を選択し
database
ます。上記では、ですanuradhfirst
。次に実行しuse anuradhfirst
ます。これにより、必要なデータベースに切り替わります。 - 次に
show collections
コマンドを実行します。collections
これにより、選択したデータベース内のすべてが表示されます。
> = 2.xでは、次のことができます
db.listCollections()
1.xでできること
db.getCollectionNames()
コレクションを表示
このコマンドは通常、データベースに切り替えると MongoDB シェルで機能します。
WiredTiger ストレージ エンジンを使用する MongoDB 3.0 の展開
db.getCollectionNames()
では、3.0 より前のバージョンの mongo シェルまたは 3.0 と互換性のあるバージョンより前のドライバーのバージョンから 実行するdb.getCollectionNames()
と、既存のコレクションがあってもデータが返されません。
詳細については、こちらを参照してください。