Consultas de MongoDB Regex Match

Consultas de MongoDB Regex Match
A veces, no conocemos el valor asociado con el campo en el documento. Por lo tanto, utilizamos la expresión regular de MongoDB para determinar las coincidencias específicas para el documento. Las expresiones regulares son un elemento importante de la programación que analiza diferentes colecciones de patrones, principalmente las cuerdas. Usamos el operador $ regex como expresión regular en MongoDB para identificar un patrón en una cadena. Las características de expresión regulares proporcionan el operador $ regex para hacer coincidir un patrón de cadenas en consultas.

¿Cómo se enfrentan las consultas de Regex en MongoDB??

El operador $ regex nos permite buscar una cadena específica dentro de una colección especificada. El operador $ regex permite que se usen expresiones regulares para que coincidan con cadenas de patrones en consultas. El MongoDB proporciona la estructura del operador $ regex de esta manera: : $ regex: 'patrón', $ opciones: '' ' donde la clave representa el nombre de la columna al que se proporciona el $ regex para que coincida con el formulario de patrón el documento. La "Opciones $" es opcional en la consulta de coincidencia de patrones y contiene varias opciones que tienen diferentes funcionalidades. Usaremos algunas de las opciones con las consultas de ejemplo. Aquí, hemos utilizado la base de datos "maestros" que se utiliza para realizar la operación $ regex. Hemos utilizado la consulta InsertMany para colocar cuatro documentos que contienen los tres campos: "Nombre", "Curso" y "Clases". La consulta de insertar documentos en la colección "maestros" de MongoDB se da de la siguiente manera:

db.Maestros.insertmany ([

"Nombre": "Pablo",
"Curso": "Desarrollo web",
"Clases": ["it", "cs", "se"]
,

"Nombre": "Peter",
"Curso": "Cuentas",
"Clases": ["se", "bba", "it"]
,

"Nombre": "Katherin",
"Curso": "Cálculo",
"Clases": ["BBA", "CS", "It"]
,

"Nombre": "Daniel",
"Curso": "Python",
"Clases": ["it", "cs"]

])

Ahora, todos los documentos se insertan en la colección de "maestros" con éxito. Podemos usar fácilmente los campos para la coincidencia de patrones con el operador $ regex.

Ejemplo # 1: Uso del operador $ regex en MongoDB para que coincida con el valor.

Aquí, estamos utilizando el operador $ regex para que coincida con el valor de la clave de posición. Hemos proporcionado el campo "nombre" en el método find (). Luego, hemos proporcionado la expresión regular "$ regex:"^Paul "" donde se emplea el $ regex para que coincida con el valor "Paul" para el campo "nombre". La estructura de la consulta $ regex se proporciona a continuación. El método foreach () se proporciona con el parámetro "printjson" que muestra cada documento dado por la consulta del operador $ regex de manera más eficiente.

db.Maestros.Find (nombre: $ regex: "^Paul").foreach (printjson)

El documento cuyo "nombre" de campo coincide con la cadena "Paul" se recupera en la siguiente imagen del shell:

Ejemplo # 2: Uso del operador $ regex en MongoDB que comienza con el carácter especificado.

A veces, tenemos la intención de identificar el campo que comienza con el carácter específico, luego $ regex se usa para establecer los criterios de selección. Aquí, hemos dado una consulta simple donde hemos establecido el método find () que toma el campo "nombre". Luego, especificamos la expresión regular "Nombre: $ regex:" P "" a ese campo para la coincidencia de patrones. El operador $ Regex coincidió solo con los nombres de los maestros que comienzan con el personaje "P" en los documentos. El documento se imprimirá en formato JSON mediante el método foreach ().

db.Maestros.find (name: $ regex: "p").foreach (printjson)

Solo tenemos dos documentos impresos a continuación que coinciden con el patrón especificado del operador $ regex que el personaje debe comenzar con "P".

Ejemplo # 3: Uso del operador $ regex en MongoDB que termina con el carácter requerido.

Como en la consulta de ejemplo anterior del operador $ regex, hemos obtenido los documentos cuyo primer personaje comienza con el personaje especificado a la expresión $ regex. Aquí, recuperamos el documento cuyo "nombre" de campo termina con el personaje "L". El símbolo "$" se usa con el personaje "L" que garantiza que la cadena termine con este personaje específico. El patrón regular "$ regex:" L $ "" se asigna al operador $ regex que busca este patrón en particular desde el documento.

db.Maestros.find (nombre: $ regex: "L $").bonito()

Cuando se ejecuta la consulta de coincidencia de patrones, muestra solo aquellos documentos cuyo "nombre de nombre" de maestro termina con el personaje "L". Los documentos de salida se muestran en la siguiente imagen del shell MongoDB:

Ejemplo # 4: Uso del operador $ Regex en MongoDB con el operador $ Opciones.

El operador $ regex también proporcionó diferentes opciones que se pueden configurar utilizando el operador $ opciones. En este ejemplo, utilizamos una expresión regular en una circunstancia sensible al caso donde el parámetro "I" se usa en el operador de $ Opciones. $ Opciones Valor "I" coincide con los patrones del alfabeto superior e inferior en la cadena. La estructura de la consulta se da donde se le asigna al campo de posición "curso" una expresión de la coincidencia de patrón regular para los escenarios sensibles a la caja. La expresión "$ regex:" python ", $ opciones: 'i'" busca la cadena "python", y la opción $ se usa para que coincida con la caja inferior y superior de la cadena "python".

db.Maestros.find (curso: $ regex: "python", $ opciones: 'i').bonito()

El resultado mostró el documento cuyo "curso" de campo comprende la cadena insensible al caso "Python".

Ejemplo # 5: Uso del operador $ regex en MongoDB que coincide con el valor de una matriz.

El principio de la expresión regular también se puede implementar para las matrices dentro de los documentos. La expresión regular es esencial cuando tratamos las etiquetas. Aquí, tenemos una consulta de expresión regular para hacer coincidir el valor de la etiqueta. Hemos dado una expresión clases: $ regex: "it" al método find (). La expresión se proporciona con las "clases" de campo que se implementa con la expresión regular. El operador $ regex se aplica a la expresión regular con el patrón "it". El operador $ Regex busca el patrón "It" desde ese campo de matriz "clases".

db.Maestros.find (classes: $ regex: "it")

El operador $ Regex devolvió todos los documentos a continuación cuyos valores de matriz contenían el patrón "It".

Ejemplo # 6: Uso del operador $ regex en MongoDB dentro del método de agregación.

El método de agregación solo contiene el operador de consulta $ regex junto con la etapa de $ coincidencia. Entonces, la funcionalidad de $ regex es realizada por el operador $ RegexMatch. Aquí, hemos llamado el método agregado () en la colección "maestros". Luego, hemos utilizado el $ addfields que toma el atributo "resultados" para generar la salida devuelta desde la expresión especificada. Se proporciona la expresión "$ regexmatch: input:" $ curso ", regex:/cuentas/" donde se usa el operador "$ regexmatch" para ingresar el campo "$ curso" que coincidió con el patrón "regex" "/cuentas /".

db.Maestros.agregar(
[$ addfields: resultados: $ regexmatch: input: "$ curso", regex: / cuentas /]))

Esos documentos cuyo nombre del curso es las cuentas se producen con el valor verdadero y los resultados del documento restantes se muestran con el valor falso.

Conclusión

Las consultas $ regex se utilizan para encontrar patrones y caracteres en una cadena. Aquí, hemos explorado la expresión regular para la coincidencia de patrones mediante el uso del operador $ regex en los criterios de selección. Además, tenemos las opciones $ que también se usan con $ regex en la expresión regular para que coincidan con el patrón. Luego, realizamos la expresión regular en la matriz y para la técnica de agregación con la etapa $ regexmatch.