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

🧠 Test Your Knowledge

Which tool creates binary backups of MongoDB databases?