MongoDB is a source-available, cross-platform, document-oriented database program. Classified as a NoSQL database product, MongoDB uses JSON-like documents with optional schemas.
This add-on integrates MongoDB and Mongo Express into your DDEV project.
It's based on MongoDB from Docker Hub, DDEV custom compose files and API Platform tutorial.
ddev add-on get ddev/ddev-mongo
ddev restart
After installation, make sure to commit the .ddev
directory to version control.
-
Your project will likely require the Doctrine MongoDB ODM bundle
ddev composer require doctrine/mongodb-odm-bundle:^4.0.0@beta doctrine/mongodb-odm:^2.0.0@beta
-
In your application
.env
or other client, set the connection string:MONGODB_URL=mongodb://db:db@mongo:27017
Mongo Express can now be started on demand using the ddev mongo-express
command. (This optional feature is available starting from DDEV v1.24.4+.)
Command | Description |
---|---|
ddev mongosh |
Run MongoDB Shell, see the documentation |
ddev mongo-express |
Start web-based MongoDB admin interface |
ddev describe |
View service status and used ports for MongoDB |
ddev logs -s mongo |
Check MongoDB logs |
ddev logs -s mongo-express |
Check Mongo Express logs (if it's started) |
- The php extension (
phpX.X-mongodb
) is set up in.ddev/config.mongo.yaml
usingwebimage_extra_packages
. You may want to edit your.ddev/config.yaml
to do what you want and remove the.ddev/config.mongo.yaml
. - You can't define custom MongoDB configuration with this current setup.
- You can't use
ddev import-db
to import to mongo.
If you don't want to authenticate with the default admin user, create a new file .ddev/docker-compose.mongo_extra.yaml
:
services:
mongo:
environment:
- MONGO_INITDB_ROOT_USERNAME=
- MONGO_INITDB_ROOT_PASSWORD=
mongo-express:
environment:
- ME_CONFIG_MONGODB_URL=mongodb://mongo:27017
(Don't forget to update your application's .env
file.)
To change the Docker image:
ddev dotenv set .ddev/.env.mongo --mongo-docker-image=mongo:5-focal
ddev add-on get ddev/ddev-mongo
ddev restart
Make sure to commit the .ddev/.env.mongo
file to version control.
All customization options (use with caution):
Variable | Flag | Default |
---|---|---|
MONGO_DOCKER_IMAGE |
--mongo-docker-image |
mongo:5-focal |
MONGO_EXPRESS_DOCKER_IMAGE |
--mongo-express-docker-image |
mongo-express:1.0 |
Originally contributed by @wtfred
Maintained by @julienloizelet