Neste post, vamos aprender como usar javascript como MongoDB shell script para exportar (campos de) uma coleção.
Geralmente, para exportar dados de uma coleção MongoDB, usamos o seguinte comando -
mongoexport -vvvv --host 127.0.0.1 --db my-db --username='usr' --password='pwd' --collection profiles --csv --out /home/data/usernames.csv -f 'username'
Definitivamente eu prefiro a forma acima mencionada. Mas vamos considerar que você tem milhões ou bilhões de registros em uma coleção MongoDB. E você deseja exportar todos estes.
Provavelmente, dependendo da configuração dos seus servidores ou até mesmo de seu desktop, este processo poderá levar horas ou até mesmo travar. Foi então que a uma solução alternativa para contornar esta situação veio a tona: Criar um script que irá criar vários blocos de dados ao exportar.
var size = 1000000;
var maxCount = 1;
for (x=0;x<maxCount;x=x+1)
{
var recToSkip = x*size;
db.profiles.find().skip(recToSkip).limit(size).forEach( function(record){
var username = record.username;
print(record.username);
})
}
E claro para executar o script (se acima javascript está em arquivo chamado - 'usernames.js')
isso só vai travar. Bem, eu não sei o que acontece no seu computador, mas na minha máquina foi apenas preso por horas e, em seguida, I terminou o processo. E veio com solução scripting - onde eu criei vários arquivos (blocos) dos dados exportados.
mongo 127.0.0.1/my-db --username=
'username'
--password=
'pwd'
export
-usernames.js > output.txt
O comando shell acima irá prestar toda a saída (de exportação-usernames.js) para o arquivo output.txt. Calma, eu tenho plena consciência de que se trata de um único arquivo onde você receberá todos os dados exportados. Mas se você quiser dividir isso , basta escrever seu script para que faça o wrapper ou executar várias vezes. Isto é com você.
0 comentários:
Postar um comentário