MongoDB
MongoDB is a popular document-based NoSQL database that stores data in JSON format. It’s particularly well-suited for applications requiring flexible data structures.
Creating MongoDB
Section titled “Creating MongoDB”- Navigate to the “Databases” page in the dashboard
- Select “MongoDB”
- Choose a version (MongoDB 7 recommended)
- Configure parameters:
| Parameter | Description | Example |
|---|---|---|
| Service name | Container identifier | my-mongodb |
| Root username | Admin account | admin |
| Root password | Admin password | (auto-generated) |
| Initial database | Default database | myapp |
Connection Settings
Section titled “Connection Settings”# MongoDB connection stringmongodb://admin:password@mongodb-container:27017/myapp?authSource=adminApplication Connection Examples
Section titled “Application Connection Examples”// Node.js (mongoose)const mongoose = require('mongoose');await mongoose.connect(process.env.MONGODB_URL);# Python (pymongo)from pymongo import MongoClientclient = MongoClient(os.environ['MONGODB_URL'])db = client.myappData Management
Section titled “Data Management”Create Collections and Indexes
Section titled “Create Collections and Indexes”// Create indexes to improve query performancedb.users.createIndex({ email: 1 }, { unique: true });db.posts.createIndex({ createdAt: -1 });db.products.createIndex({ name: "text", description: "text" });Data Export and Import
Section titled “Data Export and Import”# Export a collectionmongoexport --uri="mongodb://admin:password@mongodb:27017/myapp?authSource=admin" \ --collection=users --out=users.json
# Import datamongoimport --uri="mongodb://admin:password@mongodb:27017/myapp?authSource=admin" \ --collection=users --file=users.json
# Full database backupmongodump --uri="mongodb://admin:password@mongodb:27017/myapp?authSource=admin" \ --out=/backup/
# Restore databasemongorestore --uri="mongodb://admin:password@mongodb:27017/myapp?authSource=admin" \ /backup/myapp/Performance Tuning
Section titled “Performance Tuning”Memory Settings
Section titled “Memory Settings”MongoDB’s WiredTiger storage engine uses 50% of available memory as cache by default:
# Custom WiredTiger cache sizestorage: wiredTiger: engineConfig: cacheSizeGB: 1Indexing Strategy
Section titled “Indexing Strategy”- Create indexes for frequently queried fields
- Use compound indexes to optimize multi-field queries
- Avoid too many indexes, as they increase write overhead
- Regularly use
explain()to analyze query plans
Common Issues
Section titled “Common Issues”Authentication Failed
Section titled “Authentication Failed”Ensure the connection string includes the authSource=admin parameter and that the username and password are correct.
High Memory Usage
Section titled “High Memory Usage”MongoDB uses as much available memory as possible to cache data. You can limit memory usage by setting cacheSizeGB. For a 1 GB RAM VPS, we recommend setting the cache to 256 MB to 512 MB.