MongoDB- Parte 2
Operadores de consulta en MongoDB
Son los operadores usados para consultar información de la base de datos, estos vienen precedidos del símbolo $. Existen operadores de comparación, lógicos , de elemento, de evaluación y arrays.
Operadores de comparación :
- $eq : Coincide con los valores que son iguales a un valor específico.
- $gt : Coincide con los valores que son mayores que un valor específico.
- $gte : Coincide con los valores que son mayores o iguales a un valor específico.
- $in : Coincide con cualquiera de los valores especificados en un array.
- $lt : Coincide con los valores que son menores que un valor específico.
- $lte : Coincide con los valores que son menores o iguales a un valor específico.
- $ne : Coincide con todos los valores que no son iguales a un valor específico.
- $nin : No coincide con ninguno de los valores especificados en una array.
Operadores lógicos:
- $and : Une consultas con un AND lógico, este devuelve todos los documentos que coinciden con las condiciones de ambas consultas.
- $not : NOT lógico que invierte el efecto de una expresión de consulta y devuelve los documentos que no coinciden con la expresión de consulta.
- $nor : Une consultas con un NOR lógico, este devuelve todos los documentos que no coinciden con ambas consultas.
- $or : Une consultas con un OR lógico, este devuelve todos los documentos que coinciden con las condiciones de cualquiera de las consultas.
Operadores de elemento:
- $exists : Coincide con documentos que tienen el campo especificado.
- $type : Selecciona documentos si un campo es del tipo especificado.
Operadores de evaluación:
- $expr : Permite el uso de expresiones de agregación dentro del lenguaje de consulta.
- $jsonSchema : Valida documentos respecto el esquema JSON dado.
- $mod : Realiza una operación de módulo sobre el valor de un campo y selecciona documentos con un resultado específico.
- $regex : Selecciona documentos donde los valores coinciden con una expresión regular específica.
- $text : Realiza búsqueda por texto.
- $where : Coincide con documentos que satisfacen una expresión de JavaScript específica.
Arrays:
- $all : Coincide con arrays que contienen todos los elementos especificados en la consulta.
- $elemMatch : Selecciona documentos si el elemento en el campo del array coincide con todas las condiciones $elemMatch especificadas
- $size : Selecciona documentos si el campo del array tiene un tamaño específico.
Índices en MongoDB
Los índices son estructuras de datos especiales que almacenan una pequeña parte del conjunto de datos de la colección en una forma más fácil de recorrer. Los índices pueden ser de: campo específico, compuesto, único y de texto (exclusivo de MongoDB).
Campo específico : db.movies.createIndex({name:1})
Compuesto: db.movies.createIndex({name:1, year:1}
Único: db.movies.createIndex({name:1},{unique:true})
Texto : db.movies.createIndex({name:"text"},{sipnosis:"text"})
Busca entre cadenas de texto sin importar minúsculas, mayúsculas o tildes. Pero para hacer las búsquedas por este índice se hace de la siguiente manera: db.collections.find({$text:{$search:"palabraBuscar"}})
Agregación en MongoDB
Las operaciones de agregación procesan varios documentos y devuelven resultados calculados. Se pueden usar operaciones de agregación para agrupar los valores de varios documentos, realizar operaciones en los datos agrupados para devolver un solo resultado y analizar los cambios de datos a lo largo del tiempo. El método de agrupación más utilizado es mediante "pipelines", sin embargo también existen los métodos de "Map-Reduce" y operaciones de único propósito.
El método de pipelines consta de una o más etapas que procesan los documentos. Cada etapa realiza una operación sobre los documentos de entrada. Por ejemplo, una etapa puede filtrar documentos, agrupar documentos y calcular valores; los documentos que salen de una etapa pasan a la etapa siguiente. Un pipeline puede devolver resultados para grupos de documentos, por ejemplo, devuelve los valores promedio, máximo y mínimo de dicha agrupación.
El método pipeline utiliza los siguientes comandos:
$match : Filtra los documentos para pasar solo los documentos que coinciden con las condiciones especificadas a la siguiente etapa.
$group : Agrupa los documentos de entrada por la expresión _id especificada y, para cada agrupación distinta, genera un documento. El campo _id de cada documento de salida contiene el grupo único por valor. Los documentos de salida también pueden contener campos calculados que contienen los valores de alguna expresión de acumulador.
$count : Pasa un documento a la siguiente etapa que contiene un recuento del número de documentos ingresados a la etapa.
$sum : Calcular el importe total y el recuento de cada grupo de documentos
$lookup : Realiza una unión externa a una colección no fragmentada en la misma base de datos para filtrar documentos de la colección. Para cada documento de entrada, la etapa $lookup agrega un nuevo array cuyos elementos son los documentos coincidentes de la colección "unida". La etapa $lookup pasa estos documentos reestructurados s a la siguiente etapa.
Comentarios
Publicar un comentario