Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

24 de maio de 2018

Mongo: Comandos para selecionar (find)


Pretty comando para identar o selecionar
     Ao utilizar o find como mostrado anteriormente são trazidos todos os dados sem filtro, como por exemplo db.alunos.find(), mas note que são exibidos os dados sem identação e fica um tanto quanto confuso para visualizar quando temos muitos dados, para melhorar isso podemos utilizar o comando pretty, ficaria dessa forma db.alunos.find().pretty(), veja como fica bem mais fácil de visualizar.

Find
    O comando find é utilizado para selecionar valores, anteriormente vimos como podemos selecionar em documentos simples, onde temos apenas uma estrutura, como por exemplo: db.alunos.find(
     { "nome" : "Mateus" }
).pretty()

     Mas e quando temos uma estrutura dentro desse aluno como por exemplo os cursos que ele está estudando, teríamos que pensar em um join se fosse SQL normal, alunos join cursos, mas no mongo fazemos isso de uma forma bem parecida como em linguagens de programação orientada a objetos como por exemplo:
db.alunos.find(
     { "curso.nome" : "Contabilidade" }
).pretty()
Neste exemplo pesquisei os alunos que estão estudando Contabilidade, simples não é?

Condições ("ou/or" e "e/and")
    Em SQL é muito comum termos uma seleção com mais de uma condição, no mongo também podemos fazer isso como por exemplo o "or" em um banco onde estamos trabalhando os funcionários.
db.funcionarios.find({
    $or : [
               {"departamento.nome" : "RH"},
               {"departamento.nome" : "Manutenção"}
             ]
     }).pretty()

     Agora caso quiséssemos filtrar esta consulta ainda pelos funcionários onde o gênero é feminino poderíamos fazer da seguinte forma.
db.funcionarios.find({
    $or : [
               {"departamento.nome" : "RH"},
               {"departamento.nome" : "Manutenção"}
             ],
              "genero" : "F"
     }).pretty()
     Ou seja, para o mongo sempre que adicionamos uma nova condição sem especificar nada ela será um "e/and".

0 comentários:

Postar um comentário