Comportamento, acesso e uso de mongoimport
Nesta página
Aviso
Conflitos de importação e exportação de dados com ($) e (.)
A partir do MongoDB 5.0, os nomes dos campo do documento podem ser prefixados com um caractere de dólar ($
) e podem conter um caractere de ponto (.
). No entanto, mongoimport
e mongoexport
não funcionarão com nomes de campo que usem esses caracteres.
O MongoDB Extended JSON v2 não consegue diferenciar entre os invólucros de tipo e os campos que por acaso têm o mesmo nome dos invólucros de tipo. Não use formatos JSON Estendidos em contextos onde as representações BSON correspondentes possam incluir chaves prefixadas ($
). O mecanismo DBRef é uma exceção a esta regra geral.
Também há restrições quanto ao uso de mongoimport
e mongoexport
com (.
) em nomes de campos. Como os arquivos CSV usam o (.
) para representar hierarquias de dados, um (.
) em um nome de campo será interpretado incorretamente como um nível de aninhamento.
Comportamento
Tipo Fidelidade
Se você precisar preservar todos os tipos de dados BSON avançados ao usar o mongoexport
para executar backups completos da instância, certifique-se de especificar Extended JSON v2.0 (modo canônico) com a opção --jsonFormat
do mongoexport
da seguinte forma:
mongoexport --jsonFormat=canonical --collection=<coll> <connection-string>
Se --jsonFormat
não for especificado, mongoexport
produzirá dados em Extended JSON v2.0 (modo relaxado) por padrão.
O mongoimport
utilizará automaticamente o formato JSON localizado no arquivo de dados de destino especificado quando da restauração. Por exemplo, ele usará Extended JSON v2.0 (modo canônico) se o arquivo de exportação de dados de destino tiver sido criado por mongoexport
com --jsonFormat=canonical
especificado.
JSON Format
mongoimport
exige que os dados de importação estejam em Extended JSON v2.0 (canônico) ou Extended JSON v2.0 (relaxado) por padrão. Para importar dados formatados usandoJSON v1.0 estendido, especifique a opção --legacy
.
Dica
Em geral, as versões do mongoexport
e mongoimport
devem corresponder. Ou seja, para importar dados criados a partir de mongoexport
, você deve usar a versão correspondente de mongoimport
.
Ordem do documento
Por padrão, mongoimport
pode inserir documentos em uma ordem aleatória. Para preservar a ordem do documento durante o processo de restauração, use --maintainInsertionOrder
.
Codificação
mongoimport
suporta apenas ficheiro de dados codificados em UTF-8. Usar outras codificações produz erros.
DICAS
mongoimport
cria automaticamente conexões compatíveis com FIPS para um mongod
/mongos
configurado para usar o modo FIPS.
Escreva preocupação
Se você especificar a preocupação de gravação na opção --writeConcern
e na opção --uri connection string
, o valor --writeConcern
substituirá a preocupação de gravação especificada na string URI.
Lotes
mongoimport
usa um tamanho máximo de lote de 100.000 para executar operações de inserção/upsert em massa.
Acesso necessário
Para se conectar a um mongod
que impõe autorização com a opção --auth
, você deve usar as opções --username
e --password
. O usuário que deseja se conectar deve ter, no mínimo, a função readWrite
no banco de dados para o qual está importando dados.