‫Instructor: La consulta de datos en una base de datos
‫es una de las operaciones más importantes que tenemos en las bases de datos.
‫Entonces, ahora echemos un vistazo a un par de operadores
‫de consulta en MongoDB, comenzando con algunos
‫simples y luego pasando a algunas consultas realmente complejas.
‫Y, para empezar, démosnos un poco de espacio aquí.
‫Y entonces, ya lo sabe, la forma
‫más fácil de consultar básicamente todos los
‫documentos de una colección determinada es simplemente usar
‫buscar sin pasar nada allí.
‫Entonces, eso es lo que hemos estado haciendo hasta este momento.
‫Y así, simplemente nos da este resultado
‫con todos los
‫documentos que están en una determinada
‫colección básicamente sin ningún criterio de búsqueda.
‫Pero, ahora, digamos que en realidad solo queremos una gira y
‫ya sabemos su nombre.
‫Y entonces, podemos buscar
‫ese tour usando el nombre que conocemos.
‫Y así, nosotros db. recorridos y, de nuevo,
‫encontrar.
‫Pero, esta vez, pasaremos un objeto de filtro.
‫Entonces, nuevamente, necesitamos un objeto aquí.
‫Y entonces, empiezas a ver ahora
‫que en MongoDB, realmente todo funciona con objetos.
‫Y esto será aún más prominente más adelante en
‫esta conferencia.
‫Entonces, dentro de este objeto, pasamos el filtro.
‫Entonces, básicamente, los
‫criterios de búsqueda que queremos buscar.
‫Entonces, simplemente establecemos el nombre del
‫tour que queremos buscar.
‫Entonces, digamos The Forest Hiker.
‫Y eso es realmente.
‫Entonces, ese es nuestro criterio de búsqueda o el filtro de búsqueda.
‫Y, si hubiéramos
‫regresado ahora, entonces solo obtendremos esta
‫gira donde el nombre coincide exactamente con el que pasamos.
‫Y, por supuesto, podríamos hacer lo mismo con cualquier otra cosa.
‫Por ejemplo, para la
‫dificultad, podríamos buscar recorridos que tengan una
‫dificultad fácil.
‫Entonces, dificultad y facilidad.
‫Cierre el objeto, cierre la función.
‫Y así, tenemos todos los recorridos donde la dificultad es fácil.
‫En este momento, solo hay un recorrido,
‫pero si tuviéramos varios recorridos con dificultad
‫configurada como
‫fácil, entonces, por supuesto, devolvería todos estos documentos.
‫Entonces, esa es la
‫forma más fácil de buscar documentos.
‫Ahora, vayamos al siguiente nivel
‫utilizando algunos operadores de consulta especiales.
‫Y lo que quiero hacer es buscar tours que
‫tengan un precio por debajo de 500.
‫Y la forma en que funciona es así.
‫Entonces, siempre usamos db. El nombre de la colección. encontrar.
‫Y luego, de nuevo, o filtrar objeto.
‫Entonces, recuerde, quiero buscar precios, así
‫que digo precio.
‫Y ahora, quiero todos los tours con un precio inferior a 500.
‫Entonces, ¿cómo hago eso?
‫Bueno, necesito usar el operador menor que
‫y funciona así.
‫Necesitamos definir aún un nuevo objeto
‫donde establecemos la propiedad lte en 500, luego cerramos ese
‫objeto, y
‫luego cerramos ese primer objeto de precio
‫y luego cerramos la función.
‫Entonces, eso se ve muy extraño, lo
‫sé, pero así es como usamos operadores de consulta en MongoDB.
‫Entonces, nuevamente, lte significa menos porque eso es
‫lo que estamos buscando.
‫Donde el precio sea inferior a 500.
‫Y este signo especial aquí está reservado en
‫MongoDB para sus operadores.
‫Entonces, siempre que vea este signo de dólar aquí en MongoDB,
‫sabrá que es un operador de Mongo.
‫Entonces, la parte más extraña
‫aquí es probablemente que tenemos que hacerlo dentro de
‫un nuevo objeto, pero si lo piensas, en realidad es
‫la única forma de especificar que el precio no debería ser simplemente 500,
‫sino algo más.
‫Entonces, tenemos que establecer el precio en algo más que 500.
‫Y la mejor
‫manera es usar otro objeto allí.
‫Entonces, así es exactamente como funciona MongoDB.
‫Entonces, probemos esto ahora, presione regresar.
‫Y, de hecho, obtenemos nuestros
‫dos documentos donde el precio de la propiedad está por debajo de 500.
‫Genial, a continuación, busquemos dos
‫criterios de búsqueda al mismo tiempo.
‫Entonces, lo que quiero hacer a continuación es buscar
‫documentos que tengan un precio menor o igual a 500, que
‫es lo que ya teníamos aquí,
‫pero también, al mismo tiempo, la calificación mayor o igual
‫a 4. 8.
‫Y entonces, eso debería darnos solo este recorrido aquí.
‫Entonces, solo este porque
‫este es el único que tiene el precio por debajo de 500
‫y la calificación igual o superior a 4. 8.
‫Entonces, es 4. 8 y ese
‫es el que debe coincidir con nuestra consulta.
‫Entonces, vamos a aclararlo para eliminar algo de la confusión.
‫Ahora, quiero este resultado aquí
‫para que podamos compararlo con el siguiente resultado.
‫Entonces, ahora escribamos la consulta que acabo de describir.
‫Entonces, busque y, nuevamente, este de aquí será
‫el mismo.
‫Entonces, queremos que el precio sea menor o igual a 500.
‫O, en realidad, podríamos simplemente decir menos de 500.
‫Entonces, lte es menor o igual y es simplemente menor que.
‫Entonces, esta es la primera parte, el precio es inferior a 500.
‫Y, al mismo tiempo, queremos que la calificación sea mayor o
‫igual a 4. 8.
‫Y eso es fácil.
‫Todo lo que tenemos que hacer es especificar un segundo campo
‫en nuestro objeto de filtro.
‫Entonces, primero, el precio y ahora la calificación.
‫Por lo tanto, queremos que la
‫calificación sea y probablemente
‫pueda adivinarla, mayor o igual a 4. 8.
‫Ahora, cierre este objeto de filtro y cierre la función.
‫Entonces, probémoslo.
‫Y, de hecho, nos da el resultado que esperábamos.
‫Entonces, el único documento donde ambos criterios de búsqueda aquí
‫son verdaderos al mismo tiempo.
‫Entonces, solo para recapitular, cuando queremos buscar dos
‫criterios al mismo tiempo, que básicamente es
‫una consulta y, por lo tanto, el precio es
‫menor que 500 y la calificación es mayor o igual a
‫4. 8.
‫Bueno, lo único que tenemos que
‫hacer es especificar dos campos en el objeto de filtro.
‫Y sé que esto parece bastante confuso.
‫Sentí exactamente lo mismo cuando estaba aprendiendo estas cosas,
‫pero espero que aún
‫puedas seguirme para que ahora podamos llevarlo incluso un nivel más allá.
‫Entonces, aquí, hicimos una consulta y.
‫Entonces, consultar documentos donde estas dos
‫condiciones son verdaderas, pero ahora hagamos una consulta o.
‫Entonces, básicamente buscando todos los documentos donde
‫esta parte aquí es verdadera o
‫esta parte es verdadera.
‫Entonces, db. Excursiones. búscalo y
‫ciérrelo aquí porque esto
‫va a ser aún más confuso.
‫Entonces, queremos hacer una consulta o y la forma en
‫que funciona con los operadores MongoDB es así.
‫Decimos o y luego aquí, especificamos una matriz.
‫Y, en esta matriz, colocaremos las dos condiciones donde queremos
‫que una de ellas sea verdadera.
‫Entonces, nuevamente, sé que esto parece
‫confuso, pero escribámoslo ahora y luego lo explicaré nuevamente cuando ya
‫lo estemos haciendo.
‫Entonces, la primera condición es que el
‫precio debe ser menor a 500.
‫Entonces, básicamente lo mismo que antes.
‫Entonces, ese es el primer objeto.
‫Entonces, todo esto, entonces la primera condición,
‫básicamente el primer filtro, y
‫luego el segundo.
‫Entonces, la calificación debería ser, como antes, mayor
‫o igual que 4. 8.
‫Cierra este y cierra este.
‫Y entonces, eso ya es todo.
‫Entonces, nuevamente, para recapitular aquí, comenzamos con el operador or y
‫el operador or acepta una serie de condiciones.
‫Entonces, es por eso que creamos esta matriz aquí
‫y esta matriz contendrá un objeto
‫para cada uno de nuestros filtros básicamente.
‫Entonces, queremos que este sea cierto
‫o este.
‫Entonces, intentemos ver cuáles serán nuestros resultados.
‫Y así, en realidad tenemos los tres recorridos.
‫Entonces, analicemos por qué es así.
‫Entonces, el primero tiene un precio menor a 500.
‫Y por eso se incluyó aquí.
‫No tiene la calificación mayor o igual a 4. 8, por lo
‫que son solo 4. 7, pero como estamos haciendo una consulta
‫o aquí, solo una de las condiciones debe ser verdadera.
‫Y es por eso que este documento aquí se seleccionó
‫y se incluye en nuestro resultado.
‫A continuación, este también tiene el precio menor o igual que 500 y además,
‫al mismo tiempo, tiene la calificación grande o igual
‫a 4. 8.
‫Y así, se incluyó en realidad
‫porque ambos eran ciertos.
‫Entonces, el último no tiene el precio menor a 500, pero sí tiene la
‫calificación mayor o igual a 4. 8.
‫Entonces, nuevamente, una de las dos condiciones es verdadera y,
‫dado que estamos haciendo una consulta o, este
‫recorrido también se incluyó.
‫Entonces, aclaremos esto y solo uno
‫más, que será más o menos lo mismo.
‫Simplemente voy a cambiar de menor que a mayor que.
‫Y lo que quiero que hagas
‫ahora es adivinar el resultado de este basado
‫en el resultado anterior.
‫Entonces, ¿puedes adivinar cuál será el resultado?
‫Entonces, echemos un vistazo.
‫Y así, ahora, de hecho, ya no tenemos los tres recorridos, sino solo
‫el segundo y el tercero porque, recuerde, el
‫primer recorrido tenía el precio menos
‫de 500 y también la calificación menos
‫de 4. 8.
‫Entonces, ninguna de las condiciones se aplicaba y, por
‫lo tanto, ya no está incluida.
‫Solo el segundo y el tercero,
‫que ahora tiene un precio tampoco superior a 500, pero tiene la calificación
‫de 4. 8
‫y todavía está incluido.
‫Y, el último, por supuesto, tiene todo lo cierto
‫y, por supuesto, también está aquí.
‫Solo una cosa más que quería mostrarles
‫aquí es que además de nuestro objeto de filtro,
‫este, también podemos pasar un objeto para su proyección.
‫Entonces, lo que significa la proyección es que
‫simplemente queremos seleccionar algunos de los campos en la salida.
‫Entonces, déjame mostrártelo y es muy simple.
‫Todo lo que tenemos que hacer es, por ejemplo, decir que el nombre es igual a uno.
‫Entonces, lo que esto significa es que solo queremos que
‫el nombre esté en la salida y por eso establecemos el nombre en uno.
‫Todos los demás no aparecerán en este caso.
‫Entonces, déjame mostrarte eso.
‫Y, de hecho, solo tenemos el
‫nombre y ya no todas estas otras propiedades.
‫Y esto puede resultar muy útil en algunos casos.
‫La idea, por supuesto, también está apareciendo, pero
‫eso siempre está ahí.
‫No hay forma de eliminar eso.
‫Está bien, genial.
‫Entonces, creo que ahora se logró el objetivo principal
‫de esta conferencia, que era
‫básicamente familiarizarlo con la forma en que
‫consultamos en MongoDB y también mostrarle estos operadores complejos de MongoDB
‫que tenemos aquí.
‫Por alguna razón, no puedo seleccionarlo, pero
‫sabes a qué me refiero.
‫Entonces, tenemos más que, tenemos
‫o, y realmente tenemos un montón de
‫otros operadores todavía.
‫Entonces, esto es solo
‫la superficie, pero durante el resto del curso,
‫por supuesto, conocerá a un par de otros operadores.
‫Entonces, esto es solo para que
‫se familiarice, comience a realizar consultas en MongoDB.
‫Y creo que en esta conferencia lo hicimos con éxito.