Returns an array containing the names of all collections and views in the current database, or if running with access control, the names of the collections according to user’s privilege. For details, see Required Access.


Changed in version 4.0: db.getCollectionNames() no longer locks the collections to return name information.

For MongoDB 3.0 deployments using the WiredTiger storage engine, if you run db.getCollectionNames() from a version of the mongo shell before 3.0 or a version of the driver prior to 3.0 compatible version, db.getCollectionNames() will return no data, even if there are existing collections. For more information, see WiredTiger and Driver Version Compatibility.

Required Access

Starting in version 4.0 of the mongo shell, db.getCollectionNames() is equivalent to:

db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
  • For users with the required access (privileges that grant listCollections action on the database), the method lists the names of all collections for the database.
  • For users without the required access, the method lists only the collections for which the users has privileges. For example, if a user has find on a specific collection in a database, the method would return just that collection.


The following returns the names of all collections in the records database:

use records

The method returns the names of the collections in an array:

[ "employees", "products", "mylogs", "system.indexes" ]