Pplware

MongoDB: Manipular a base de dados NoSQL no Windows 10

No artigo anterior aprendemos a instalar e a configurar a base de dados NoSQL MongoDB. Neste artigo vamos aprender a trabalhar com ela, fazendo manipulação de dados, aprender a criar utilizadores, criar novas bases de dados, inserção de informação, pesquisas, edições e eliminar dados.

Vamos então começar!


Para fazer a manipulação do MongoDB, primeiro é necessário entrar na shell do MongoDB, para isso vamos abrir a linha de comandos como administrador, e localizarmo-nos na pasta de instalação do MongoDB, dentro da pasta “bin”, e na linha de comandos escrevemos o seguinte comando:

mongo

Feito isto estamos dentro da shell do MongoDB. A partir daqui podemos começar a manipular a nossa base de dados.

Criar um novo utilizador

O próximo passo será criar um novo utilizador na base de dados e definir os respetivos privilégios (roles). Para isso vamos escrever os seguintes comandos:

db.createUser({
user:"ricardo",
pwd:"admin",
roles:["readWrite","dbAdmin"]
});

Copiem o código anterior, façam as vossas alterações e por fim colem na shell do MongoDB. Se tudo correr bem, o vosso utilizador com os privilégios de administrador da base de dados irá ser corretamente criado.

Ver lista de bases de dados

Para mostrar todas as bases de dados disponíveis no mongodb usamos o seguinte comando:

show dbs

Como podemos verificar, o MongoDB já trás por omissão duas bases de dados: a base de dados “admin” e a base de dados “local.”

Criar Bases de Dados

Vamos agora aprender a criar uma nova base de dados. Vamos criar então, como exemplo, a base dados com o nome “Loja”.

use loja

Como podem ver, ao usarmos o comando acima referido criamos a base de dados loja e automaticamente entramos dentro da base de dados criada.

(Nota: Para confirmarem a base de dados onde estão, podem sempre a qualquer altura escrever o comando “db” para verem a base de dados onde estão a trabalhar).

Criação de coleções

O próximo passo que vamos aprender, será a criação de coleções. As coleções permitem armazenar documentos e nada mais são que o correspondente às tabelas nas bases de dados relacionais. Para criarmos uma coleção devemos usar o seguinte comando:

db.createCollection('clientes');

Para verificarem que a coleção foi corretamente criada, podem correr o seguinte comando:

show collections

Inserir documento na coleção

Vamos aprender agora a inserir um documento, na coleção “clientes” que criamos anteriormente. Para isso vamos usar o seguinte comando:

db.clientes.insert({nome:"Ricardo", sobrenome:"Fonseca"});

Como podem verificar na imagem, os dados foram inseridos com sucesso na coleção “clientes”. Para verificar os documentos inseridos numa determinada coleção usamos o seguinte comando:

db.clientes.find();

Como pode ver, foi apresentado o documento que inserimos anteriormente.

(Nota: Sempre que inserimos um determinado documento, o _id do mesmo é gerado automaticamente, sendo ele único para cada documento criado).

Adicionar vários documentos de uma só vez

Vamos agora aprender a adicionar vários documentos de uma só vez, inclusive vamos adicionar novos atributos e ver o que acontece. Vamos então escrever o seguinte código no terminal.

db.clientes.insert([{nome:"Pedro", sobrenome:"Pinto"},{nome:"Manuel", sobrenome:"Santos", genero:"Masculino"}]);

Como podem ver, para adicionar vários documentos de uma só vez basta colocarmos todo a informação dentro de um array. Podemos ainda ver também que com o uso de base de dados do tipo NoSQL, não necessitamos de especificar o tipo de campos, isto é, podemos sempre em qualquer altura adicionar numa determinada coleção diferentes documentos com diferentes campos.

Exemplo disso é o documento relativo ao Manuel que tem o campo género contrariamente aos outros dois documentos adicionados anteriormente.

Ver documentos

As bases de dados do tipo NoSQL servem na sua grande maioria para armazenar elevados números de documentos. Fazer a procura de informação linha a linha acaba por não ser pratico. Existe um comando que nos permite visualizar os documentos de uma forma visualmente mais apelativa.

db.clientes.find().pretty()

Vamos agora adicionar um novo campo, num dos documentos adicionados anteriormente, para isso vamos usar o seguinte comando:

db.clientes.update({nome:"Ricardo"},{$set:{genero:"Masculino"}});

(Nota: Para fins de aprendizagem, a pesquisa do documento á alterar foi pelo nome, mas numa aplicação para produção o indicado deve ser pelo “_id”, pois caso existissem nomes iguais todos eles seriam alterados).

No exemplo acima adicionamos um novo campo num documento já existente. Mas caso queiramos alterar o valor de um campo já inserido como podemos fazer? É simples vamos usar o seguinte comando:

db.clientes.update({nome:"Manuel"},{$set:{sobrenome:"Pereira"}});

Como podem ver o sobrenome do Manuel passou de Santos para Pereira. Vamos agora aprender a eliminar documentos presentes na nossa coleção. Para isso vamos analisar os seguintes códigos:

db.clientes.remove({nome:"Manuel"});

Com este código o que irá acontecer será a eliminação de todos os documentos cujo nome seja Manuel. Existe outra forma de apagar apenas o primeiro documento cujo nome seja Manuel, para tal usamos o seguinte código.

db.clientes.remove({nome:"Manuel"}, {justOne:true});

Por fim vamos ensinar como fazer pesquisas e aprender a usar querys para aceder a determinadas informações que quisermos.

Para realizar os testes, vamos adicionar outros clientes a nossa coleção, para tal copiem e colem os seguintes códigos:

db.clientes.insert({nome:"José", sobrenome:"Pinheiro", genero:"Masculino"});
db.clientes.insert({nome:"Bernardo", sobrenome:"Matos", genero:"Masculino"});
db.clientes.insert({nome:"Maria", sobrenome:"Clara", genero:"Feminino"});
db.clientes.insert({nome:"Jõao", sobrenome:"Cardoso", genero:"Masculino"});
db.clientes.insert({nome:"Sandra", sobrenome:"Oliveira", genero:"Feminino"});

Pesquisa de documentos

Agora já temos um conjunto de informação disponível na nossa coleção podemos fazer um conjunto de queries para testar o mecanismo de pesquisa do MongoDB. Vamos numa primeira fase fazer uma pesquisa simples apenas com um parâmetro:

db.clientes.find({nome:"Ricardo"});

Vamos agora fazer uma pesquisa com diferentes parâmetros, e ver quais os resultados apresentados. Para tal vamos fazer uma pesquisa de todos os resultados que contenham o nome Ricardo e o género Feminino. Para isso vamos escrever o seguinte código:

db.clientes.find({$or:[{nome:"Ricardo"},{genero:"Feminino"}]});

Ordenação de resultados

Outro comando interessante que podemos usar é a ordenação dos resultados, por exemplo por ordem alfabética. Para ordenarmos as nossas pesquisas podemos usar o seguinte comando:

db.clientes.find().sort({nome:1});

(Nota: Caso queiram os resultados de forma ascendente podem utilizar o seguinte comando: db.clientes.find().sort({nome:-1}); )

Contagem de documentos

Por fim podemos ainda fazer a contagem de todos os documentos presentes na nossa coleção, para tal usamos o seguinte comando:

db.clientes.find().count();

Podemos também fazer a contagem dos resultados de uma determinada query, para isso o comando é o seguinte

db.clientes.find({genero:"Feminino"}).count();

Como podem ver a manipulação da base de dados MongoDB é bastante simples e rápida, com ela podemos fazer inúmeras tarefas e a velocidade de pesquisa em relação as bases de dados relacionais é superior.

Podem consultar toda a documentação do MongoDB aqui e descobrirem por vocês mesmos todas as vantagens na utilização desta incrível base de dados NoSQL.

Não percam o próximo artigo onde vamos a ensinar a criar um webservice REST em NodeJS para a utilização da base de dados MongoDB. Não percam!

Exit mobile version