MongoDB Database Tools
Essential utilities for backup, restore, and data management
🛠️ What are Database Tools?
MongoDB Database Tools are command-line utilities for working with MongoDB deployments. They help you import, export, backup, and restore data efficiently, making database management simple and reliable.
# Export collection to JSON
mongoexport --db=mydb --collection=users --out=users.json
Available Database Tools
mongodump
Create binary backup of database
mongodump --db=mydb
mongorestore
Restore data from backup
mongorestore dump/
mongoexport
Export data to JSON or CSV
mongoexport --collection=users
mongoimport
Import data from JSON or CSV
mongoimport --file=data.json
🔹 mongodump - Database Backup
Create binary backups of your MongoDB databases. mongodump exports data in BSON format, preserving all data types and structures perfectly for reliable backups and migrations.
🔸 Basic Backup Operations
# Backup entire MongoDB instance
mongodump
# Backup specific database
mongodump --db=myDatabase
# Backup specific collection
mongodump --db=myDatabase --collection=users
# Backup to specific directory
mongodump --db=myDatabase --out=/backup/mongodb/
# Backup with compression
mongodump --db=myDatabase --gzip
Output:
2024-01-15T10:30:00.000+0000 writing myDatabase.users to dump/myDatabase/users.bson 2024-01-15T10:30:01.000+0000 done dumping myDatabase.users (1000 documents) 2024-01-15T10:30:01.000+0000 writing myDatabase.products to dump/myDatabase/products.bson 2024-01-15T10:30:02.000+0000 done dumping myDatabase.products (500 documents)
🔸 Remote Database Backup
# Backup from remote server
mongodump --host=mongodb.example.com --port=27017
# Backup with authentication
mongodump \
--host=mongodb.example.com \
--username=admin \
--password=secret \
--authenticationDatabase=admin \
--db=myDatabase
🔹 mongorestore - Restore Backups
Restore data from mongodump backups. mongorestore reads BSON files and recreates databases and collections, making it essential for disaster recovery and data migration tasks.
🔸 Basic Restore Operations
# Restore entire backup
mongorestore dump/
# Restore specific database
mongorestore --db=myDatabase dump/myDatabase/
# Restore specific collection
mongorestore \
--db=myDatabase \
--collection=users \
dump/myDatabase/users.bson
# Restore with different database name
mongorestore --db=newDatabase dump/oldDatabase/
# Restore compressed backup
mongorestore --gzip dump/
🔸 Advanced Restore Options
# Drop existing collections before restore
mongorestore --drop dump/
# Restore to remote server
mongorestore \
--host=mongodb.example.com \
--username=admin \
--password=secret \
dump/
# Restore only specific collections
mongorestore \
--nsInclude="myDatabase.users" \
--nsInclude="myDatabase.orders" \
dump/
🔹 mongoexport - Export to JSON/CSV
Export MongoDB data to human-readable formats like JSON or CSV. Perfect for data analysis, sharing datasets, or integrating with other applications that need structured data files.
🔸 Export to JSON
# Export collection to JSON
mongoexport \
--db=myDatabase \
--collection=users \
--out=users.json
# Export with query filter
mongoexport \
--db=myDatabase \
--collection=users \
--query='{"age": {"$gt": 18}}' \
--out=adult_users.json
# Export specific fields only
mongoexport \
--db=myDatabase \
--collection=users \
--fields=name,email,age \
--out=users_basic.json
🔸 Export to CSV
# Export to CSV format
mongoexport \
--db=myDatabase \
--collection=users \
--type=csv \
--fields=name,email,age \
--out=users.csv
# Export with custom field names
mongoexport \
--db=myDatabase \
--collection=users \
--type=csv \
--fields=name,email,age \
--fieldFile=fields.txt \
--out=users.csv
Output (users.csv):
name,email,age John Doe,[email protected],25 Jane Smith,[email protected],30 Bob Johnson,[email protected],22
🔹 mongoimport - Import Data
Import data from JSON, CSV, or TSV files into MongoDB collections. Useful for loading initial data, migrating from other systems, or bulk data operations.
🔸 Import JSON Data
# Import JSON file
mongoimport \
--db=myDatabase \
--collection=users \
--file=users.json
# Import JSON array
mongoimport \
--db=myDatabase \
--collection=users \
--file=users.json \
--jsonArray
# Import and drop existing collection
mongoimport \
--db=myDatabase \
--collection=users \
--file=users.json \
--drop
🔸 Import CSV Data
# Import CSV file
mongoimport \
--db=myDatabase \
--collection=users \
--type=csv \
--headerline \
--file=users.csv
# Import CSV with specific fields
mongoimport \
--db=myDatabase \
--collection=users \
--type=csv \
--fields=name,email,age \
--file=users.csv
🔹 Other Useful Tools
Additional MongoDB tools for specialized tasks:
mongostat
Monitor MongoDB server statistics in real-time
# Monitor server statistics
mongostat
# Monitor with custom interval (seconds)
mongostat --rowcount=10 5
mongotop
Track time spent reading and writing data
# Monitor collection activity
mongotop
# Monitor with custom interval
mongotop 5
mongofiles
Work with files stored in GridFS
# List files in GridFS
mongofiles list
# Upload file to GridFS
mongofiles put myfile.pdf
# Download file from GridFS
mongofiles get myfile.pdf