Using Liquibase with MongoDB

MongoDB is a document-oriented NoSQL database. For more information, see MongoDB Documentation.

Supported versions

  • 6.X
  • 5.X

Warning: Liquibase does not work with the MongoDB compatibility features in AWS DocumentDB or Azure Cosmos DB because they use a version of MongoDB that Liquibase does not support.

Verification level

Compatible: This database is widely reported by the community to work with Liquibase. Automated testing may verify partial Liquibase Open Source and Liquibase Pro functionality. The Liquibase support team provides best-effort usage support to Commercial users.

Note: A database's verification level indicates how well it works with different features in Liquibase and across different products, such as Liquibase Open Source and Liquibase Pro. For more information, see Liquibase Database Tutorials.


Install drivers

To use Liquibase and MongoDB, you need two JAR files:

Place your JAR file(s) in the liquibase/lib directory. Read more: Adding and Updating Liquibase Drivers.

If you use Maven, you must include the driver JAR as a dependency in your pom.xml file. Read more: Configuring Liquibase Attributes in your Maven POM File.


Test your connection

  1. Ensure your MongoDB database is configured. See Install MongoDB for more information.
  2. Specify the database URL in the Liquibase properties file. Liquibase does not parse the URL. You can either specify the full database connection string or specify the URL using your database's standard JDBC format:
  3. url: mongodb://hostname:27017/myDatabase

    Note: If you are unsure about how to configure the url property, refer to Connection String URI Format.

    Tip: To apply a Liquibase Pro key to your project, add the following property to the Liquibase properties file: liquibaseProLicenseKey: <paste code here>

  4. Create a text file called changelog (.xml) in your project directory and add a changeset.
  5. Navigate to your project folder in the CLI and run the Liquibase status command to see whether the connection is successful:
  6. liquibase --username=test --password=test --changelog-file=<changelog.xml> status

    Note: You can pass arguments in the CLI or keep them in the Liquibase properties file.

  7. Make changes to your database with the update command.
  8. liquibase --changelog-file=<changelog.xml> update
  9. From a database UI tool, ensure that your database contains myCollection along with the DATABASECHANGELOG table and DATABASECHANGELOGLOCK table.
  10. Tip: You can use MongoDB Compass to easily view collections in your database. For example, run the commands use myDatabase and db.myCollection.find().

Related links