web-dev-qa-db-ja.com

Mongoシェルの全コレクションを一覧表示するにはどうすればいいですか?

MongoDBシェルで、現在使用しているデータベースのすべてのコレクションをどのように一覧表示するのですか。

702
coffee-grinder

できるよ...

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
1050
AdaTheDev
> show collections

コマンドラインヘルプ(help)に記載されているように、現在選択されているDB内のすべてのコレクションを一覧表示します。

401
Cameron

現在使用しているデータベースのすべてのコレクションをどのように一覧表示するのですか。

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
249

> show tables

キャメロンの答えと同じ結果になります。

51
Kevin Meredith

他の人々によって提案されたオプションとは別に:

show collections  //output every collection
show tables
db.getCollectionNames() //shows all collections as a list

各コレクションがどのように作成されたかを知りたい場合には、とても便利な方法がもう1つあります(例えば、特定のサイズの上限付きコレクションです)

db.system.namespaces.find()
28
Salvador Dali

まずデータベースを使用して、その中にあるすべてのコレクション/テーブルを表示する必要があります。

>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
20
Tarun Gupta

show tablesまたはshow collectionsを使用できます

14
lxg

試してください:

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
13
Indrajeet Singh

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/

11
kkk

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つのコマンドとこのスニペットの間には、十分に網羅されているはずです。

9
Sood

最大の混乱の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'))})"
4
Bruno Bronosky

2.x以上では、できます

db.listCollections()

1.xではできます

db.getCollectionNames()
2
Aniruddh Joshi

データベースに切り替えるには: - use {your_database_name}の例: 

use friends

ここで、friendsはデータベースの名前です。

それから書く: -

db.getCollectionNames()
show collections

これはあなたにコレクションの名前を与えるでしょう。

2

mongo Shellからのすべてのコレクションをリストする:

  • db.getCollectionNames()
  • コレクションを表示
  • テーブルを表示

注:コレクションは現在のデータベースから現在の場所を示します 現在

1
Hasib Kamal

コレクションを表示 

データベースに切り替えたら、このコマンドは通常mongo Shellで機能します。

1
PHINCY L PIOUS
> 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が表示されます。
0
Anuradh S
 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 } )
  • 必要なアクセス権(データベースに対する listCollectionsアクションを許可する特権)を持つユーザーの場合、このメソッドはデータベースのすべてのコレクションの名前をリストします。
  • 必要なアクセス権がないユーザーの場合、このメソッドは、ユーザーが特権を持っているコレクションのみを一覧表示します。たとえば、ユーザーがデータベース内の特定のコレクションを見つけた場合、メソッドはそのコレクションだけを返します。
0
Amitesh

WiredTigerストレージエンジンを使用したMongoDB 3.0の展開では、の場合、3.0より前のバージョンのmongo Shell または3.0互換バージョンより前のバージョンのドライバーからdb.getCollectionNames()を実行する場合たとえ既存のコレクションがあっても、db.getCollectionNames()はデータを返しません。

詳しくは this を参照してください。

0
Rahul

私はこの目的のために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/

0
new_user

mongo Shellから次のコマンドを使用します。 - show collections

0
Anoop Sharma