Blog de clase Tecnologías para el desarrollo de aplicaciones web

Blog de clase

View on GitHub
14 April 2021

MongoDB - Metodos, filtros y operadores

by Santiago Gutiérrez Pérez

En MongoDB la estrucutra de la base de datos se ve como: BasedeDatos.Coleccion.Metodos(), en donde los metodos a su vez pueden o no recibir parametros, en el caso del metodo find() a este se le puede ingresar un parametro, que sería el filtro, equivalente al WHERE de SQL.

Operadores de consulta o Query operators

Son los operadores usados para consultar la información, el ejemplo anterior muestra como usar el operador $gt, este equivale a valores mayores (greather than) el valor que se esta buscando. Para añadir mas filtros en el metodo find, solo es separar los objetos de busqueda por comas, si se quiere buscar peliculas con fecha menor a 2008 y que ademas tengan como rating un valor mayor a 7 el siguiente comando lo haría:

cine.peliculas.find({year: {$lt: 2008}, rating: {$gt: 7}}).pretty()

Esta es una lista de operadores utiles:


Un ejemplo del uso de estos operadores es si se quiere consultar las peliculas que hayan salido despues del año 2000 y antes del 2008 incluyendolo, para hacer uso de este operador se tiene la siguiente sintaxis:

cine.peliculas.find({$and: [{year:{$gt: 2000}}, {year:{$lte: 2008}}]).pretty()

Cabe resaltar que para añadir componentes al operador $and se debe pasar una lista de objetos con las consultas, en este caso de comparación.


Operadores de proyeccion o Projection operators

Estos son operadores usados para mostrar la información

Busquedas dentro de un Array

Si se tiene un campo dentro de una coleccion que este a su vez tenga una lista de objetos, por ejemplo si se tiene una coleccion de productos con una organizacion asi:

{
      "_id" : ObjectId("6080e638152dc02b1fc55291"),
      "nombre producto" : "Crema dental",
      "Descripción del producto" : "descripcion",
      "Fecha de creacion" : 240421,
      "Precio" : 12000,
      "Cantidad de inventario" : 10,
      "vendedor" : {
              "nombre" : "Pepito",
              "teléfonos" : 123,
              "dirección" : "calle123",
              "ciudad de residencia" : "Medellin",
              "calificación por ventas" : 10
      }
}

Si se quiere consultar los productos cuyo vendedor sea Pepito la sintaxis es la siguiente:


db.inventario.find({"vendedor.nombre": "Pepito"}).pretty()

Se tiene que enviar el nombre del campo de la coleccion con un punto y el nombre del campo interno para poder realizar esta consulta, debe de escribirse entre comilllas. Mongo reconoce que “vendedor” contiene un array de datos y con el punto va a buscar en cada uno de los objetos embebidos.

Referencias

[1] Documentación oficial de MongoDB.