it-swarm.com.de

Wie liste ich alle Sammlungen in der Mongo-Shell auf?

Wie liste ich in der MongoDB-Shell alle Sammlungen für die aktuelle Datenbank auf, die ich verwende?

685
coffee-grinder

Du kannst tun...

JS (Shell):

db.getCollectionNames()

node.js:

db.listCollections()

nicht-JS (nur Shell):

show collections

Der Grund, warum ich nicht-JS nenne, ist:

$ 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"
]

Wenn Sie diese süße, show collections-Ausgabe wirklich wollen, können Sie:

$ 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

listet alle Sammlungen in der aktuell ausgewählten Datenbank auf, wie in der Befehlszeilenhilfe (help) angegeben.

401
Cameron

wie liste ich alle Sammlungen für die aktuelle Datenbank auf, die ich verwende?

3 Methoden

  • show collections
  • show tables
  • db.getCollectionNames()

So listen Sie alle Datenbanken auf :

show dbs

So geben Sie eine Datenbank ein oder verwenden sie:

use databasename

So listen Sie alle Sammlungen auf :

show collections

Ausgabe:

collection1  
collection2  
system.indexes

(oder)

show tables

Ausgabe:

collection1  
collection2  
system.indexes

(oder)

db.getCollectionNames()

Ausgabe:

[ "collection1", "collection2", "system.indexes" ]

Zum Betreten oder Verwenden einer bestimmten Sammlung

use collectionname
253

> show tables

Es gibt das gleiche Ergebnis wie Camerons Antwort.

51
Kevin Meredith

Abgesehen von den von anderen Leuten vorgeschlagenen Optionen:

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

Es gibt auch einen anderen Weg, der sehr praktisch sein kann, wenn Sie wissen möchten, wie die einzelnen Sammlungen erstellt wurden (z. B. eine begrenzte Sammlung mit einer bestimmten Größe).

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

Zuerst müssen Sie eine Datenbank verwenden, um alle Sammlungen/Tabellen darin anzuzeigen.

>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

sie können show tables oder show collections verwenden.

14
lxg

Versuchen:

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

Der Befehl zum Anzeigen der gesamten Sammlung in der mongoDb-Datenbank lautet

show collections 

Bevor Sie den Befehl show Collections ausführen, müssen Sie die Datenbank auswählen 

use mydb //mydb is the name of the database being selected

Um alle Datenbanken anzuzeigen, können Sie den Befehl verwenden

show dbs // shows all the database names present 

Für weitere Informationen besuchen Sie diesen Link: http://docs.mongodb.org/manual/tutorial/getting-started/

11
kkk

Wenn Sie alle Sammlungen aus der mongodb-Shell (Befehlszeile) anzeigen möchten, verwenden Sie den Shell-Helper 

show collections

hier werden alle Sammlungen für die aktuelle Datenbank angezeigt. Wenn Sie alle Sammlungslisten aus Ihrer Anwendung abrufen möchten, können Sie die Datenbankmethode mongodb verwenden

db.getCollectionNames()

Weitere Informationen zum Shell-Helfer von mongodb finden Sie unter http://docs.mongodb.org/manual/reference/mongo-Shell/

Die folgenden Befehle auf Mongoshell sind üblich

show databases
show collections

Ebenfalls,

show dbs
use mydb
db.getCollectionNames()

Manchmal ist es nützlich, alle Sammlungen sowie die Indizes der Sammlungen anzuzeigen, die Teil des gesamten Namensraums sind:

So würden Sie das machen:

 db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});

Zwischen den 3 Befehlen und diesem Snippet sollten Sie gut abgedeckt sein!

9
Sood

Ich denke, eine der größten Verwirrungen ist der Unterschied zwischen dem, was Sie mit mongo (oder einer interaktiven/hybriden Shell) und mongo --eval (oder einer reinen Javascript-Shell) machen können. Ich halte diese hilfreichen Dokumente bereit:

Hier ein Beispiel für ein Skripting, was Sie sonst mit show-Befehlen machen könnten:

# 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')
            )
        }
    )
"

Hinweis: Das funktioniert wirklich gut als Oneliner. (Sieht aber auf StackOverflow schrecklich aus.)

mongo --eval "db.getMongo().getDBNames().forEach(function(v, i){print(v+'\n\t'+db.getSiblingDB(v).getCollectionNames().join('\n\t'))})"
4
Bruno Bronosky

Bei> = 2.x können Sie das tun

db.listCollections()

Auf 1.x kannst du das tun

db.getCollectionNames()
2
Aniruddh Joshi

Wechseln Sie in die Datenbank . Mit: - Verwenden Sie {Ihr_Datenbankname} Beispiel: 

use friends

dabei ist Freunde der Name Ihrer Datenbank.

dann schreibe:-

db.getCollectionNames()
show collections

dadurch erhalten Sie den Namen der Sammlungen.

2

Alle Sammlungen der Mongo-Shell auflisten:

  • db.getCollectionNames ()
  • kollektionen anzeigen
  • tabellen anzeigen

Hinweis: Sammlungen werden aus der aktuellen Datenbank angezeigt, in der Sie sich in .__ befinden. zur Zeit

1
Hasib Kamal

kollektionen anzeigen 

dieser Befehl funktioniert normalerweise auf der Mongo Shell, wenn Sie zur Datenbank wechseln.

1
PHINCY L PIOUS
> show dbs        
anuradhfirst  0.000GB
local         0.000GB
> use anuradhfirst
switched to db anuradhfirst
> show collections
record
  • verbinden Sie sich mit der Mongo-Datenbank mit mongo. Dadurch wird die Verbindung gestartet.
  • führen Sie dann den Befehl show dbs aus. Dadurch werden alle vorhandenen/verfügbaren Datenbanken angezeigt.
  • wählen Sie dann das gewünschte database aus. Daraufhin wird anuradhfirst angezeigt. Führen Sie dann use anuradhfirst aus. Dadurch wird die gewünschte Datenbank ausgewählt.
  • führen Sie dann den Befehl show collections aus. Daraufhin werden alle collections-Werte in der ausgewählten Datenbank angezeigt.
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" ]

Details zu jeder Sammlung

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
  • Für Benutzer mit dem erforderlichen Zugriff (Berechtigungen, die der Aktion ListCollections für die Datenbank gewähren), listet die Methode die Namen Aller Sammlungen für die Datenbank auf.
  • Für Benutzer ohne erforderlichen Zugriff listet die Methode nur die Sammlungen von Auf, für die der Benutzer über Berechtigungen verfügt. Wenn ein Benutzer für eine bestimmte Auflistung in einer Datenbank gefunden hat, würde die Methode Nur diese Auflistung zurückgeben.
0
Amitesh

Bei MongoDB 3.0-Implementierungen, die die WiredTiger-Speicher-Engine verwenden, wenn Sie führen db.getCollectionNames() von einer Version der Mongo-Shell aus vor 3.0 oder eine Version des Treibers vor 3.0-kompatibler Version db.getCollectionNames() liefert keine Daten zurück, selbst wenn bestehende Sammlungen.

Weitere Details finden Sie unter this

0
Rahul

Ich verwende listCollections (unterstützt Mongo 3.0 und höher) für diesen Zweck.

beispiel:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: true });

Weitere Informationen wie den Index der Sammlung abrufen:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: false });

So drucken Sie nur die Namen der Sammlung:

db.runCommand({ listCollections: 1, filter: {}, nameOnly: true }).cursor.firstBatch.forEach(v => {print(v.name)})

Ich glaube, dass dies mehr Flexibilität bietet.

lesen Sie mehr: https://docs.mongodb.com/manual/reference/command/listCollections/

0
new_user

verwenden Sie den folgenden Befehl aus der Mongo-Shell: - show collection

0
Anoop Sharma