Exportação de Dados no MongoDB | MongoDB | Banco de Dados
- Exportação de Dados no MongoDB | MongoDB | Banco de Dados
Visão geral
MongoDB fornece duas ferramentas principais para exportação de dados:
- exportação lógica (JSON/CSV)
- backup completo (BSON)
Cada uma atende a cenários distintos de uso.
mongoexport
Quando usar
- Integração com outros sistemas
- Geração de arquivos JSON ou CSV
- Exportação parcial com filtros
Sintaxe básica
mongoexport \
--uri="mongodb://localhost:27017" \
--db=meuBanco \
--collection=minhaCollection \
--out=arquivo.json
- Questão de prova:
mongoexport --host localhost:27017 -d catalog -c shoes --type=csv -f fields -o shoes.csv
Exportar para JSON
mongoexport \
--db=sample_mflix \
--collection=movies \
--out=movies.json
Exportar para JSON como array
mongoexport \
--db=sample_mflix \
--collection=movies \
--jsonArray \
--out=movies_array.json
Exportar para CSV
mongoexport \
--db=sample_mflix \
--collection=movies \
--type=csv \
--fields=title,year,imdb.rating \
--out=movies.csv
Regras importantes:
- CSV exige
--fields - Estruturas aninhadas podem perder formato
Exportar com filtro
mongoexport \
--db=sample_mflix \
--collection=movies \
--query='{ "year": { "$gte": 2000 } }' \
--out=movies_2000.json
Exportar campos específicos
mongoexport \
--db=sample_mflix \
--collection=movies \
--fields=title,year \
--out=movies_simple.json
Autenticação
mongoexport \
--uri="mongodb://user:pass@localhost:27017/meuBanco" \
--collection=minhaCollection \
--out=out.json
mongodump
Quando usar
- Backup completo do banco
- Migração entre ambientes
- Preservação total dos dados
MongoDB utiliza BSON internamente para armazenamento
Sintaxe básica
mongodump \
--uri="mongodb://localhost:27017" \
--out=backup/
Dump de banco específico
mongodump \
--db=sample_mflix \
--out=backup/
Dump de collection
mongodump \
--db=sample_mflix \
--collection=movies \
--out=backup/
Estrutura gerada
backup/
└── sample_mflix/
├── movies.bson
└── movies.metadata.json
Dump com filtro
mongodump \
--db=sample_mflix \
--collection=movies \
--query='{ "year": { "$gte": 2000 } }' \
--out=backup_filtered/
Dump compactado
mongodump \
--db=sample_mflix \
--archive=backup.gz \
--gzip
Autenticação
mongodump \
--uri="mongodb://user:pass@localhost:27017" \
--out=backup/
Comparação entre ferramentas
| Característica | mongoexport | mongodump |
|---|---|---|
| Formato | JSON / CSV | BSON |
| Legível | Sim | Não |
| Backup completo | Não | Sim |
| Performance | Média | Alta |
| Preserva tipos BSON | Não | Sim |
Restore com mongorestore
mongorestore backup/
Restore com arquivo compactado
mongorestore \
--gzip \
--archive=backup.gz
Boas práticas
- Use
mongoexportpara dados consumíveis externamente - Use
mongodumppara backup real - Prefira
--uripara conexões - Use
--gzipem grandes volumes - Evite CSV para documentos complexos
Armadilhas comuns
mongoexportnão preserva tipos BSON (datas, ObjectId)mongodumpnão gera arquivos legíveis- CSV não suporta bem arrays/objetos
- Filtros usam sintaxe JSON (não shell JS completo)