Exemplos do mongoexport
Nesta página
Esta página mostra exemplos para mongoexport
.
Execute mongoexport
na linha de comando do sistema, não no shell mongo
.
Exportar em Formato CSV
Exportar dados em formato CSV usando a --fields
opção
No exemplo seguinte, o mongoexport
exporta dados da collection contacts
no banco de dados do users
no formato CSV para o arquivo /opt/backups/contacts.csv
.
A instância mongod
à qual mongoexport
se conecta está sendo executada na porta localhost número 27017
.
Ao exportar no formato CSV, você deve especificar os campos nos documentos para exportar. A operação especifica os campos name
e address
para exportar.
mongoexport --db=users --collection=contacts --type=csv --fields=name,address --out=/opt/backups/contacts.csv
A saída seria então semelhante a:
name, address Sophie Monroe, 123 Example Road Charles Yu, 345 Sample Street
Use um arquivo para especificar os campos a serem exportados em formato CSV
Somente para exportações CSV, você também pode especificar os campos em um arquivo contendo a lista de campos a serem exportados separados por linhas. O arquivo deve ter apenas um campo por linha.
Por exemplo, você pode especificar os campos name
e address
em um arquivo fields.txt
:
name address
Em seguida, usando a opção --fieldFile
, especifique os campos a exportar com o arquivo:
mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv
Excluir nomes de campo da saída do CSV
A opção --noHeaderLine
pode ser utilizada para excluir nomes de campo em uma exportação CSV. O exemplo a seguir exporta os campos name
e address
da coleção contacts
no banco de dados users
e usa --noHeaderLine
para suprimir a saída dos nomes dos campo como a primeira linha:
mongoexport --db=users --collection=contacts --type=csv --fields=name,address --noHeaderLine --out=/opt/backups/contacts.csv
A saída CSV pareceria com isto:
Sophie Monroe, 123 Example Road Charles Yu, 345 Sample Street
Exportar em Formato JSON
Este exemplo cria uma exportação da coleção contacts
da instância do MongoDB em execução no número da porta localhost 27017
. Isto grava a exportação para o arquivo contacts.json
no formato JSON.
mongoexport --db=sales --collection=contacts --out=contacts.json
Exportar do Host Remoto em Execução com Autenticação
O exemplo seguinte exporta a coleção contacts
no banco de dados marketing
a partir de uma instância remota MongoDB que exige autenticação.
Especifique o:
Dica
Omita a opção --password
para que mongoexport
solicite a senha:
mongoexport --host=mongodb1.example.net --port=27017 --username=someUser --authenticationDatabase=admin --collection=contacts --db=marketing --out=mdb1-examplenet.json
Alternativamente, você utiliza a opção --uri
para especificar o host, porta, nome de usuário, banco de banco de dados de autenticação e db.
Dica
Omita a senha na string do URI para que mongoexport
solicite a senha:
mongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing?authsource=admin' --collection=contacts --out=mdb1-examplenet.json
Exportar Resultados da Query
Você pode exportar somente os resultados de uma query fornecendo um filtro de query com a opção --query
e limitar os resultados a um único banco de dados usando a opção "--db
".
Por exemplo, o comando retorna todos os documentos na coleção {1 sales
do banco de dados contacts
que contêm um campo chamado dept
igual a "ABC"
e o campo date
maior ou igual a ISODate("2018-01-01") (usando o formato canônico para datas { "$date": "YYYY-MM-DDTHH:mm:ss.mmm<offset>"} )
mongoexport --db=sales --collection=contacts --query='{"dept": "ABC", date: { $gte: { "$date": "2018-01-01T00:00:00.000Z" } }}'
Você deve colocar o documento de query entre aspas simples ('{ ... }'
) para garantir que ele não interaja com seu ambiente de shell.
Conecte-se a um cluster MongoDB Atlas usando as credenciais AWS IAM
Novidades na versão 100.1.0.
Para conectar-se a um MongoDB Atlas cluster do que foi configurado para permitir autenticação por meio de credenciais do Amazon Web Services IAM, forneça um connection string
a mongoexport
semelhante ao seguinte:
mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
A conexão ao Atlas usando credenciais AWS IAM dessa maneira usa o MONGODB-AWS
authentication mechanism
e o $external
authSource
, como mostrado neste exemplo.
Se estiver usando um token de sessão da AWS, forneça-o também com o valor AWS_SESSION_TOKEN
authMechanismProperties
, como segue:
mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>
Observação
Se o ID da chave de acesso da AWS, a chave de acesso secreta ou o token de sessão incluírem os seguintes caracteres:
: / ? # [ ] @
esses caracteres devem ser convertidos usando codificação percentual.
Como alternativa, a ID da chave de acesso da AWS, a chave de acesso secreta e, opcionalmente, o token de sessão podem ser fornecidos fora da string de conexão usando as opções --username
, --password
e --awsSessionToken
, desta forma:
mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>
Quando fornecidos como parâmetros da linha de comando, estas três opções não exigem codificação percentual.
Você também pode definir essas credenciais em sua plataforma usando variáveis de ambiente padrão do AWS IAM. mongoexport
verifica as seguintes variáveis de ambiente quando você usa o MONGODB-AWS
authentication mechanism
:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
Se definidas, essas credenciais não precisam ser especificadas na connection string ou por meio de suas opções explícitas.
Observação
Se você optar por usar as variáveis de ambiente da AWS para especificar esses valores, não poderá combinar e corresponder com as opções explícitas ou de cadeia de conexão correspondentes para essas credenciais. Use as variáveis de ambiente para ID de chave de acesso e chave de acesso secreta (e token de sessão, se usado) ou especifique cada uma delas usando as opções explícitas ou de cadeia de conexão.
O exemplo a seguir define essas variáveis de ambiente no shell bash
:
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
A sintaxe para definir variáveis de ambiente em outros shells será diferente. Consulte a documentação da sua plataforma para obter mais informações.
Você pode verificar se essas variáveis de ambiente foram definidas com o seguinte comando:
env | grep AWS
Depois de definido, o exemplo a seguir se conecta a um MongoDB Atlas cluster usando estas variáveis de ambiente:
mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>