‫Instrutor: Consultar dados em um banco de dados
‫é uma das operações mais importantes que temos em bancos de dados.
‫E então, vamos agora dar uma olhada em alguns operadores
‫de consulta no MongoDB, começando com alguns
‫simples e depois passando para algumas consultas realmente complexas.
‫E, para começar, vamos nos dar um pouco de espaço aqui.
‫E então, você já sabe, a maneira
‫mais fácil de consultar basicamente todos os
‫documentos em uma determinada coleção é apenas usar
‫find, sem passar nada lá.
‫Então, é isso que temos feito até este ponto.
‫E assim, nos dá simplesmente esse resultado
‫com todos os
‫documentos que estão em uma determinada
‫coleção basicamente sem nenhum critério de pesquisa.
‫Mas, agora, digamos que na verdade queremos apenas uma turnê e
‫já sabemos o nome dela.
‫E assim, podemos pesquisar
‫esse passeio usando o nome que conhecemos.
‫E então, nós db. passeios e, novamente,
‫encontrar.
‫Mas, desta vez, vamos passar um objeto de filtro.
‫Então, novamente, precisamos de um objeto aqui.
‫E então, você começa a ver agora
‫que no MongoDB, realmente tudo funciona com objetos.
‫E, isso será ainda mais proeminente um pouco mais tarde
‫nesta palestra.
‫Então, dentro desse objeto, passamos o filtro.
‫Então, basicamente, os
‫critérios de pesquisa que queremos pesquisar.
‫Portanto, simplesmente definimos o nome do
‫passeio que queremos pesquisar.
‫Então, digamos The Forest Hiker.
‫E, na verdade, é isso.
‫Então, esse é o nosso critério de pesquisa ou filtro de pesquisa.
‫E, se tivéssemos
‫retornado agora, teríamos apenas este
‫passeio em que o nome corresponde exatamente ao que passamos.
‫E poderíamos fazer, é claro, o mesmo para qualquer outra coisa.
‫Por exemplo, para a
‫dificuldade, poderíamos pesquisar passeios que tenham uma
‫dificuldade fácil.
‫Então, dificuldade e fácil.
‫Feche o objeto, feche a função.
‫E assim, conseguimos todos os passeios onde a dificuldade é fácil.
‫No momento, há apenas um passeio, mas
‫se tivéssemos vários passeios com dificuldade definida
‫como fácil,
‫então, é claro, ele retornaria todos esses documentos.
‫Então, essa é a
‫maneira mais fácil de pesquisar documentos.
‫Agora, vamos avançar para o próximo
‫nível, usando alguns operadores de consulta especiais.
‫E o que eu quero fazer é pesquisar passeios
‫que tenham um preço abaixo de 500.
‫E, a maneira como funciona é assim.
‫Então, sempre usamos db. O nome da coleção. achar.
‫E então, novamente, ou objeto de filtro.
‫E então, lembre-se, eu quero pesquisar preços,
‫então digo preço.
‫E agora, quero todos os passeios com um preço abaixo de 500.
‫Então, como faço isso?
‫Bem, eu preciso usar a operadora menor
‫e funciona assim.
‫Precisamos definir ainda um novo objeto onde
‫definimos a propriedade lte como 500, então fechamos esse objeto
‫e, em seguida,
‫fechamos o primeiro objeto de preço e,
‫em seguida, fechamos a função.
‫Parece muito estranho, eu sei, mas
‫é assim que usamos operadores de consulta no MongoDB.
‫Portanto, novamente, lte significa menos do que porque é
‫isso que estamos procurando.
‫Onde o preço for inferior a 500.
‫E, este sinal especial aqui é reservado no
‫MongoDB para seus operadores.
‫Portanto, sempre que vir este cifrão aqui no MongoDB,
‫você saberá que é um operador Mongo.
‫Então, a parte mais estranha aqui
‫é provavelmente que temos que fazer isso dentro de
‫um novo objeto, mas se você pensar sobre isso, é realmente
‫a única maneira de especificar que o preço não deve ser simplesmente 500,
‫mas outra coisa.
‫Portanto, temos que definir o preço para algo diferente de 500.
‫E, a melhor maneira
‫realmente é apenas usar outro objeto lá.
‫Então, é exatamente assim que o MongoDB funciona.
‫Então, vamos tentar isso agora, clique em retornar.
‫E, de fato, obtemos nossos
‫dois documentos em que a propriedade do preço é inferior a 500.
‫Ótimo, a seguir, vamos pesquisar
‫dois critérios de pesquisa ao mesmo tempo.
‫Então, o que quero fazer a seguir é buscar
‫documentos que tenham o preço menor ou igual a 500, que
‫é o que já tínhamos aqui,
‫mas também, ao mesmo tempo, a classificação maior ou igual
‫a 4. 8
‫E então, isso deve nos dar apenas este passeio aqui.
‫Então, só este
‫porque é o único que tem o preço abaixo de 500 e
‫a avaliação é igual ou superior a 4. 8
‫Então, são 4. 8 e então esse
‫é o que deve corresponder à nossa consulta.
‫Então, vamos limpar isso para tirar um pouco da confusão.
‫Agora, quero este resultado aqui
‫para que possamos compará-lo com o próximo resultado.
‫E então, vamos agora escrever a consulta que acabei de descrever.
‫Então, encontre e, novamente, este aqui vai ser
‫o mesmo.
‫Portanto, queremos que o preço seja menor ou igual a 500.
‫Ou poderíamos simplesmente dizer menos de 500.
‫Portanto, lte é menor ou igual e simplesmente menor que.
‫Então, essa é a primeira parte, o preço menor que 500.
‫E, ao mesmo tempo, queremos que a classificação seja maior ou
‫igual a 4. 8
‫E isso é fácil.
‫Tudo o que precisamos fazer é especificar um segundo campo em
‫nosso objeto de filtro.
‫Então, primeiro o preço e agora a avaliação.
‫Portanto, queremos que a classificação
‫seja, e provavelmente você
‫pode adivinhar, maior ou igual a 4. 8
‫Agora, feche este objeto de filtro e feche a função.
‫Então, vamos testar.
‫E, de fato, nos dá o resultado que esperávamos.
‫Portanto, o único documento em que os dois critérios de pesquisa
‫aqui são verdadeiros ao mesmo tempo.
‫Então, só para recapitular, quando queremos buscar
‫dois critérios ao mesmo tempo,
‫que basicamente é uma consulta e, então preço
‫menor que 500 e avaliação maior ou igual a
‫4. 8
‫Bem, a única coisa que temos
‫que fazer é especificar dois campos no objeto de filtro.
‫E, eu sei que isso parece muito confuso.
‫Eu me senti exatamente da mesma forma quando estava aprendendo essas
‫coisas, mas espero que
‫você ainda possa me seguir para que agora possamos realmente ir mais longe.
‫Então, aqui, fizemos uma consulta e.
‫Portanto, consultar documentos em que essas duas
‫condições sejam verdadeiras, mas agora vamos fazer uma consulta ou.
‫Então, basicamente procurando por todos os documentos
‫onde ou esta parte aqui é verdadeira
‫ou esta parte é verdadeira.
‫Então, db. passeios. encontre e
‫vamos fechá-lo aqui porque
‫vai ser ainda mais confuso.
‫Então, queremos fazer uma consulta ou e a maneira
‫como funciona com os operadores MongoDB é assim.
‫Dizemos ou e aqui especificamos um array.
‫E, nessa matriz, colocaremos as duas condições onde queremos
‫que uma delas seja verdadeira.
‫Então, novamente, eu sei que isso
‫parece confuso, mas vamos escrever agora e então explicarei novamente quando
‫já estivermos fazendo isso.
‫Portanto, a primeira condição é que o
‫preço deve ser inferior a 500.
‫Então, basicamente o mesmo de antes.
‫Então, esse é o primeiro objeto.
‫Então, tudo isso, então a primeira condição,
‫basicamente o primeiro filtro e
‫depois o segundo.
‫Portanto, a classificação deve ser, como antes, maior
‫ou igual a 4. 8
‫Feche este e feche este.
‫E então, na verdade já é isso.
‫Portanto, novamente, para recapitular aqui, começamos com o operador ou e
‫o operador ou aceita uma matriz de condições.
‫Então, é por isso que criamos essa matriz aqui
‫e essa matriz conterá um objeto
‫para cada um de nossos filtros basicamente.
‫Portanto, queremos que este seja verdadeiro
‫ou este.
‫Então, vamos tentar ver quais serão nossos resultados.
‫E então, na verdade, temos todas as três turnês.
‫E então, vamos analisar por que isso acontece.
‫Portanto, o primeiro tem um preço inferior a 500.
‫E então, é por isso que foi incluído aqui.
‫Não tem classificação maior ou igual a 4. 8, então
‫são apenas 4. 7, mas como estamos fazendo uma
‫consulta ou aqui, apenas uma das condições precisa ser verdadeira.
‫E é por isso que este documento aqui foi selecionado
‫e está incluído em nossa saída.
‫A seguir, este também tem o preço menor ou igual a 500 e também,
‫ao mesmo tempo, tem a avaliação ótimo ou igual
‫a 4. 8
‫E então, foi incluído, na verdade,
‫por ambos serem verdadeiros.
‫Então, o último não tem o preço menor que 500, mas tem a
‫avaliação maior ou igual a 4. 8
‫E então, novamente, uma das duas condições é verdadeira
‫e, como estamos fazendo uma consulta ou, esse
‫passeio também foi incluído.
‫Então, vamos esclarecer isso e apenas mais
‫um, que vai ser mais ou menos o mesmo.
‫Vou simplesmente mudar de menor que para maior que.
‫E o que eu quero que
‫você faça agora é adivinhar a saída deste com
‫base no resultado anterior.
‫Então, você consegue adivinhar qual será o resultado?
‫Então, vamos dar uma olhada.
‫E então, agora, de fato, não temos mais todos os três passeios, mas
‫apenas o segundo e o terceiro porque, lembre-se,
‫o primeiro passeio teve o preço
‫inferior a 500 e também a classificação inferior
‫a 4. 8
‫E assim, nenhuma das condições se aplicava e
‫por isso não está mais incluído.
‫Apenas o segundo e o terceiro,
‫que agora tem preço também não superior a 500, mas tem avaliação
‫de 4. 8 e
‫por isso ainda está incluído.
‫E, o último, claro, tem tudo verdadeiro
‫e então, claro, também está aqui.
‫Só mais uma coisa que queria mostrar
‫aqui é que além do nosso objeto de filtro, então
‫este aqui, também podemos passar um objeto para projeção.
‫Portanto, o que projeção significa é que
‫simplesmente queremos selecionar alguns dos campos na saída.
‫Então, deixe-me mostrar a você e é muito simples.
‫Tudo o que temos a fazer é, por exemplo, dizer que o nome é igual a um.
‫Então, o que isso significa é que queremos apenas que
‫o nome apareça na saída e é por isso que definimos o nome como um.
‫Todos os outros não vão aparecer neste caso.
‫Então, deixe-me mostrar isso a você.
‫E, de fato, temos apenas o
‫nome e não mais todas essas outras propriedades.
‫E isso pode ser muito útil em alguns casos.
‫A ideia, claro, também está aparecendo, mas
‫está sempre lá.
‫Não há como remover isso.
‫OK fixe.
‫Portanto, acho que o objetivo principal desta palestra foi
‫alcançado, que era basicamente
‫familiarizar você com a maneira como
‫consultamos no MongoDB e também mostrar esses operadores complexos do MongoDB
‫que temos aqui.
‫Por algum motivo, não posso selecioná-lo, mas
‫você sabe o que quero dizer.
‫Então, temos mais do que,
‫temos ou, e realmente temos uma tonelada de
‫outras operadoras ainda.
‫Portanto, esta é apenas
‫a superfície, mas durante o resto do
‫curso, você irá, é claro, conhecer alguns outros operadores.
‫Portanto, isso é apenas para
‫familiarizá-lo, para começar a consultar no MongoDB.
‫E, acho que nesta palestra, fizemos isso com sucesso.