Tentando importar um CSV com informações de contato:
Name,Address,City,State,ZIP
Jane Doe,123 Main St,Whereverville,CA,90210
John Doe,555 Broadway Ave,New York,NY,10010
A execução disso não parece adicionar nenhum documento ao banco de dados:
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
Trace diz imported 1 objects
, mas iniciar o shell Mongo e executar db.things.find()
não mostra novos documentos.
o que estou perdendo?
use mydb
antesdb.things.find()
?Respostas:
Seu exemplo funcionou para mim com o MongoDB 1.6.3 e 1.7.3. O exemplo abaixo foi para 1.7.3. Você está usando uma versão mais antiga do MongoDB?
fonte
mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
Fiquei perplexo com um problema semelhante em que o mongoimport não me deu um erro, mas relataria a importação de 0 registros. Eu salvei meu arquivo que não funcionava usando a versão OSX Excel para Mac 2011 usando o padrão "Salvar como ..." "xls como csv" sem especificar o formato "Windows Comma Separated (.csv)" especificamente. Depois de pesquisar neste site e tentar o formato "Salvar como novamente usando o Windows separado por vírgula (.csv)", o mongoimport funcionou bem. Acho que o mongoimport espera um caractere de nova linha em cada linha e a exportação csv padrão do Mac Excel 2011 não forneceu isso caractere no final de cada linha.
fonte
Precisamos executar o seguinte comando:
Para mais informações: mongoimport
fonte
você provavelmente precisará se autenticar se estiver trabalhando em ambientes de produção. Você pode usar algo assim para se autenticar no banco de dados correto com credenciais apropriadas.
fonte
Verifique se você tem uma linha em branco no final do arquivo, caso contrário, a última linha será ignorada em algumas versões do mongoimport
fonte
Eu uso isso no shell mongoimport
tipo pode escolher csv / tsv / json Mas apenas csv / tsv pode usar
--headerline
Você pode ler mais sobre o documento oficial .
fonte
Robert Stewart já respondeu sobre como importar com mongoimport.
Estou sugerindo uma maneira fácil de importar CSV de forma elegante com o 3T MongoChef Tool (versão 3.2+). Pode ajudar alguém no futuro.
Veja como importar vídeo
fonte
Primeiro você deve sair do
mongo
shell e depois executar omongoimport
comando da seguinte maneira:fonte
As respostas de Robert Stewart são ótimas.
Gostaria de acrescentar que você também pode digitar seus campos com --columHaveTypes e --fields como este:
(Cuidado para não haver espaço após a vírgula entre seus campos)
Para outros tipos, consulte o documento aqui: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
fonte
Para a versão 3.4, use a seguinte sintaxe:
Depois de 3 dias, finalmente consegui fazer isso sozinho. Obrigado a todos os usuários que me apoiaram.
fonte
Quando estava tentando importar o arquivo CSV, estava recebendo um erro. O que eu fiz. Primeiro, alterei os nomes das colunas da linha de cabeçalho em maiúscula e removi "-" e adicionei "_", se necessário. Em seguida, digite o comando abaixo para importar o CSV para o mongo
fonte
C: \ wamp \ mongodb \ bin> mongoexport --db proj_mmm - ofertas de coleção --csv --fieldFile offerings_fields.txt --out offerings.csv
fonte
Basta usar isso depois de executar o mongoimport
Retornará o número de objetos importados
retornará o número de objetos.
fonte
usar :
fonte
mongoimport -d test -c test --type csv --file SampleCSVFile_119kb.csv --headerline
verificar dados de coleta: -
fonte
fonte
Estranhamente ninguém mencionou a
--uri
bandeira:fonte
No nosso caso, precisamos adicionar o
host
parâmetro para fazê-lo funcionarfonte
Meu requisito era importar a instância
.csv (with no headline)
remotaMongoDB
. Para omongoimport v3.0.7
comando abaixo funcionou para mim:Por exemplo:
Abaixo está a captura de tela de como fica após a importação:
onde
name
eemail
são as colunas no.csv
arquivo.fonte
Dado
.csv
arquivo que tenho que possui apenas uma coluna sem cabeçalho , o comando abaixo funcionou para mim:onde nome do campo se refere ao nome do cabeçalho da coluna no
.csv
arquivo.fonte
Certifique-se de copiar o arquivo .csv para / usr / local / bin ou qualquer outra pasta em que o mondodb esteja
fonte