Este artigo apresentará como usar a ferramenta mongoimport para importar arquivos para o servidor de banco de dados MongoDB local e como usar a ferramenta mongoexport para exportar dados no MongoDB para arquivos.
Ferramentas de banco de dados MongoDB
O MongoDB fornece uma variedade de ferramentas de banco de dados , incluindo:
- Ferramentas binárias de importação/exportação mongodump, mongorestore e bsondump;
- Ferramentas de importação/exportação de dados mongoimport e mongoexport;
- Ferramentas de diagnóstico mongostat e mongotop;
- Ferramentas GridFS mongofiles.
A partir do MongoDB 4.4, essas ferramentas de banco de dados não são mais distribuídas e instaladas com o servidor, mas usam pacotes separados.
Primeiro, selecione a versão, plataforma e formato de arquivo de instalação correspondentes na página de download .
Em seguida, execute o arquivo de instalação e siga as instruções para instalá-lo.
Ao mesmo tempo, também precisamos clicar para baixar o arquivo de exemplo movie.json .
Importar arquivos usando mongoimport
A ferramenta mongoimport pode importar arquivos JSON, CSV e TSV para o servidor MongoDB.
Primeiro, insira o diretório de instalação na linha de comando. O padrão da plataforma Windows é C:\Program Files\MongoDB\Tools\100\bin.
cd "C:\Program Files\MongoDB\Tools\100\bin"
Em seguida, execute o comando mongoimport para importar o arquivo movie.json para o servidor MongoDB:
mongoimport.exe D:\data\movies.json -d bookdb -c movies --drop
Entre eles, -d é usado para especificar o banco de dados de destino, -c é usado para especificar a coleção de destino e – drop significa que, se a coleção já existir, exclua-a e importe-a.
Depois que a importação for bem-sucedida, as seguintes informações serão exibidas:
2023-03-30T11:49:43.954+0800 connected to: mongodb://localhost/
2023-03-30T11:49:44.028+0800 dropping: bookdb.movies
2023-03-30T11:49:45.298+0800 3201 document(s) imported successfully. 0 document(s) failed to import.
Em seguida, conecte-se ao servidor MongoDB e consulte a coleção de filmes importados:
db.movies.countDocuments()
3201
db.movies.findOne()
{
_id: ObjectId("642506d80e4683c5c14d7fa8"),
Title: "Let's Talk About Sex",
'US Gross': 373615,
'Worldwide Gross': 373615,
'US DVD Sales': null,
'Production Budget': 300000,
'Release Date': 'Sep 11 1998',
'MPAA Rating': null,
'Running Time min': null,
Distributor: 'Fine Line',
Source: null,
'Major Genre': 'Comedy',
'Creative Type': null,
Director: null,
'Rotten Tomatoes Rating': 13,
'IMDB Rating': null,
'IMDB Votes': null
}
Exportar arquivos usando mongoexport
A ferramenta mongoexport pode exportar o conteúdo do banco de dados MongoDB como arquivos JSON ou CSV.
Exporte os dados na instância do MongoDB
O comando a seguir é usado para exportar os dados de filmes da coleção no banco de dados MongoDB local bookdb na porta 27017 para o arquivo movie.json:
mongoexport.exe --collection=movies --db=bookdb --out=movies.json
Entre eles, –collection é usado para especificar a coleção a ser exportada, –db especifica o banco de dados onde a coleção está localizada e –out é usado para especificar o caminho e o nome do arquivo exportado.
Se você deseja exportar dados de uma instância remota do MongoDB, precisa especificar a string de conexão --uri, por exemplo:
mongoexport.exe --uri="mongodb://mongodb0.remote.server:27017/bookdb" --collection=movies --out=movies.json
Além disso, também podemos especificar o endereço do servidor e a porta por meio dos parâmetros --host e --port. Por exemplo:
mongoexport.exe --host="mongodb0.remote.server" --port=27017 --collection=movies --db=bookdb --out=movies.json
Exportar os dados no conjunto de réplicas
Se você deseja exportar os dados no conjunto de réplicas, pode especificar o conjunto de réplicas e os membros na string de conexão --uri:
mongoexport.exe --uri="mongodb://mongodb0.remote.server:27017,mongodb1.remote.server:27017,mongodb2.remote.server:27017/bookdb?replicaSet=myReplicaSetName" --collection=movies --out=movies.json
Como alternativa, o conjunto de réplicas e os membros também podem ser especificados no parâmetro --host:
mongoexport.exe --host="myReplicaSetName/mongodb0.remote.server:27017,mongodb1.remote.server:27017,mongodb2.remote.server:27017" --collection=movies --db=bookdb --out=movies.json
Por padrão, o mongoexport lê os dados por meio do nó primário do conjunto de réplicas. No entanto, podemos modificar essa configuração especificando a prioridade de leitura. Por exemplo:
mongoexport.exe --uri="mongodb://mongodb0.remote.server:27017,mongodb1.remote.server:27017,mongodb2.remote.server:27017/bookdb?replicaSet=myReplicaSetName&readPreference=secondary" --collection=movies --out=movies.json
O comando acima lerá os dados dos nós escravos do conjunto de réplicas.
Como alternativa, você também pode especificar o nó de leitura por meio do parâmetro --readPreference:
mongoexport.exe --host="myReplicaSetName/mongodb0.remote.server:27017,mongodb1.remote.server:27017,mongodb2.remote.server:27017" --readPreference=secondary --collection=movies --out=movies.json
Exporte os dados no cluster fragmentado
Se você deseja exportar os dados no cluster de estilhaços, pode especificar o endereço da instância mongos na string de conexão --uri. Por exemplo:
mongoexport.exe --uri="mongodb://mongos0.remote.server:27017/bookdb" --collection=movies --out=movies.json
Ou você pode especificar o endereço e a porta da instância do mongos no parâmetro --host:
mongoexport.exe --host="mongos0.remote.server:27017" --collection=movies --db=bookdb --out=movies.json