listDatabases
Definition
listDatabases
- The
listDatabases
command provides a list of allexisting databases along with basic statistics about them. ThelistDatabases
must run against theadmin
database,as in the following example:
- db.adminCommand( { listDatabases: 1 } )
The value (e.g. 1
) does not affect the output of thecommand.
The listDatabases
command can take the followingoptional fields:
FieldTypeDescriptionfilter
documentOptional. A query predicate that determines which databases are listed.
You can specify a condition on any of the fields in the output oflistDatabases
:
name
sizeOnDisk
empty
shards
New in version 3.6.
nameOnly
booleanOptional. A flag to indicate whether the command should return just thedatabase names, or return both database names and size information.
Returning size information requires locking each database one at atime, while returning only names does not require locking any database.
The default value is false
, so listDatabases
returnsthe name and size information of each database.
New in version 3.6.
authorizedDatabases
booleanOptional. A flag that determines which databases are returned based on theuser privileges when access control is enabled.
- If
authorizedDatabases
is unspecified, and- If the user has
listDatabases
action on thecluster resource,listDatabases
command returns alldatabases. - If the user does not have
listDatabases
action onthe cluster:- For MongoDB 4.0.6+,
listDatabases
command returnsonly the databases for which the user has privileges(including databases for which the user has privileges onspecific collections). - For MongoDB 4.0.5,
listDatabases
command returnsonly the databases for which the user has thefind
action on the database resource (and notthe collection resource).
- For MongoDB 4.0.6+,
- If the user has
- If
authorizedDatabases
istrue
,- For MongoDB 4.0.6+,
listDatabases
command returnsonly the databases for which the user has privileges(including databases for which the user has privileges onspecific collections). - For MongoDB 4.0.5,
listDatabases
command returnsonly the databases for which the user has thefind
action on the database resource (and not the collectionresource).
- For MongoDB 4.0.6+,
- If
authorizedDatabases
isfalse
, and- If the user has
listDatabases
action on thecluster,listDatabases
command returns all databases - If the user does not have
listDatabases
action onthe cluster,listDatabases
command errors withinsufficient permissions.For more information, see Behavior.
- If the user has
New in version 4.0.5.
Output
listDatabases
returns a document that contains:
- A field named
databases
whose value is an array of documents, onedocument for each database. Each document contains:- A
name
field with the database name. - A
sizeOnDisk
field with the total size of the database files ondisk in bytes. - An
empty
field specifying whether the database has any data. - For sharded clusters, a
shards
field that includes the shardand the size in bytes of the database on disk for each shard.
- A
- A field named
totalSize
whose value is the sum of all thesizeOnDisk
fields in bytes.
Behavior
When authentication is enabled:
show dbs
For mongo
shell version 4.0.6+ connected to earlierversions of MongoDB deployment (e.g. 3.6.10),
- If the user has
listDatabases
action on the clusterresource,show dbs
returns all databases. - If the user does not have
listDatabases
action onthe cluster resource,show dbs
returns only the databases forwhich the user has privileges (including those databases for whichthe user has privileges on specific collections).
- MongoDB 4.0.6+
- MongoDB 4.0.5
- MongoDB 4.0.0-4.0.4
For MongoDB 4.0.6+, the listDatabases
commandreturns different values based on the privileges assigned tothe user who executes the command and theauthorizedDatabases
command option:
- If
authorizedDatabases
is unspecified, and- If the user has
listDatabases
action on thecluster resource,listDatabases
command returns alldatabases. - If the user does not have
listDatabases
action onthe cluster,listDatabases
command returns only thedatabases for which the user has privileges (including databasesfor which the user has privileges on specific collections).
- If the user has
- If
authorizedDatabases
istrue
,listDatabases
command returns only the databases for which the user hasprivileges (including databases for which the user has privilegeson specific collections). - If
authorizedDatabases
isfalse
, and- If the user has
listDatabases
action on thecluster,listDatabases
command returns all databases - If the user does not have
listDatabases
action onthe cluster,listDatabases
command errors withinsufficient permissions.
- If the user has
For MongoDB 4.0.5, the listDatabases
commandreturns different values based on the privileges assigned tothe user who executes the command and theauthorizedDatabases
command option:
- If
authorizedDatabases
is unspecified, and- If the user has
listDatabases
action on thecluster resource,listDatabases
command returns alldatabases. - If the user does not have
listDatabases
action onthe cluster,listDatabases
command returns only thedatabases for which the user has thefind
actionon the database resource (and not the collection resource).
- If the user has
- If
authorizedDatabases
istrue
,listDatabases
command returns only the databases for which the user has thefind
action on the database resource (and not thecollection resource). - If
authorizedDatabases
isfalse
, and- If the user has
listDatabases
action on thecluster,listDatabases
command returns all databases - If the user does not have
listDatabases
action onthe cluster,listDatabases
command errors withinsufficient permissions.
- If the user has
For MongoDB 4.0.0-4.0.4, the listDatabases
commandreturns different values based on the privileges assigned tothe user who executes the command.
- If the user has the
listDatabases
privilegeaction on the cluster, thelistDatabases
commandreturns a list of all existing databases. - If the user does not have the
listDatabases
privilege action on the cluster, thelistDatabases
command only returns a list ofdatabases for which the user has thefind
action.
Client Disconnection
Starting in MongoDB 4.2, if the client that issued the listDatabases
disconnects before the operation completes, MongoDB marksthe listDatabases
for termination (i.e. killOp
on theoperation).
Examples
List Database Names and Sizes
Run listDatabases
against the admin
database:
- db.adminCommand( { listDatabases: 1 } )
The following is an example of a listDatabases
result:
- {
- "databases" : [
- {
- "name" : "admin",
- "sizeOnDisk" : 83886080,
- "empty" : false
- },
- {
- "name" : "local",
- "sizeOnDisk" : 83886080,
- "empty" : false
- },
- {
- "name" : "test",
- "sizeOnDisk" : 83886080,
- "empty" : false
- }
- ],
- "totalSize" : 251658240,
- "ok" : 1
- }
List Database Names Only
New in version 3.6.
Run listDatabases
against the admin
database. Specifythe nameOnly: true
option:
- db.adminCommand( { listDatabases: 1, nameOnly: true} )
The following is an example of a listDatabases
resultswhen run with the nameOnly: true
option:
- {
- "databases" : [
- {
- "name" : "admin"
- },
- {
- "name" : "local"
- },
- {
- "name" : "test"
- }
- ],
- "ok" : 1
- }
List Databases That Match the Filter
New in version 3.6.
Run listDatabases
against the admin
database. Specifythe filter
option to only list databases that match the specified filter criteria.
For example, the following specifies a filter such thatlistDatabases
only returns information on databases whosename matches the specified regular expression
:
- db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } )
Sharded Clusters
When executed against a mongos
instance,listDatabases
:
- adds a
shards
embedded document to each database’s summarydocument ifnameOnly: false
, and - excludes the
local
database.
Each element in the shards
embedded document consists of a fieldwhose key gives the name of a collection on that shard, and whose valuerepresents the collection’s size in bytes.
The sizeOnDisk
field represents the total size of alllisted collections.
For example:
- {
- "databases" : [
- {
- "name" : "admin",
- "sizeOnDisk" : 16384,
- "empty" : false,
- "shards" : {
- "config" : 16384
- }
- },
- {
- "name" : "config",
- "sizeOnDisk" : 176128,
- "empty" : false,
- "shards" : {
- "clients" : 28672,
- "patients" : 8192,
- "config" : 139264
- }
- },
- {
- "name" : "test",
- "sizeOnDisk" : 12288,
- "empty" : false,
- "shards" : {
- "clients" : 12288
- }
- }
- ],
- "totalSize" : 204800,
- "totalSizeMb" : 0,
- "ok" : 1
- }
See also