Mostrando postagens com marcador Shell. Mostrar todas as postagens
Mostrando postagens com marcador Shell. Mostrar todas as postagens

quinta-feira, 15 de maio de 2014

Como sabemos MongoDB usa javascript interface para os comandos de shell. Assim, podemos usar este recurso de uma ótima maneira escrevendo comandos de um MongoDB (shell)  em um javascript (js arquivo.) e por fim, executar em um único lugar.
Vamos ver  um exemplo bem simples.
print('===== Script =====');
print(db.getCollectionNames()); // prints all collection names in respective database
print(db.myCollection.count()); // prints the count of myCollection collection.

 

Comando para executar o Shell no script
mongo 127.0.0.1/my-profile-db --username='username' --password='pwd' mongodb-script.js

mongodb-script.js é o script shell.
Basicamente, este é apenas um comando normal de conexão mongodb para executar o script após conectar.
mo_icon_big_thumb_171574 (1)

 

 

 

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ê.

Categories

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página