MongoDB $ strcasecmp

MongoDB $ strcasecmp
Mientras hacemos una comparación en diferentes idiomas, tendemos a usar operadores de comparación. La comparación podría ser sensible al caso o insensible según la elección de un usuario. Al igual que otros entornos de desarrollo, MongoDB tiene sus operadores de comparación y uno de esos operadores es el operador "STRCASECMP". El operador MongoDB STRCASECMP compara dos valores de cadena de manera insensible al caso i.mi., Ignorar el caso de cadena y buscar. El operador STRCASECMP devuelve 0 si ambas cadenas son iguales, 1 si el primer valor es mayor que el segundo y -1 si el primer valor es menor que el segundo valor. El operador se puede usar dentro de una consulta de MongoDB para filtrar documentos basados ​​en valores de cadena.

Crear colección

Comience con la creación de una nueva colección de bases de datos en su banco de bases de datos. El comando adjunto a continuación está creando una nueva colección llamada "datos" en nuestra base de datos MongoDB "prueba". La respuesta de Ok: 1 indica que la colección se creó con éxito y se puede utilizar más.

Prueba> DB.createCollection ("datos")
OK: 1

Insertar registros en la colección

Al comienzo de crear una colección, debe estar vacío ya que aún no hemos agregado ningún documento. Para realizar el operador STRCASECMP en una colección de "datos", debe tener documentos. Por lo tanto, utilizaremos la función MongoDB InsertMany para agregar numerosos registros a una colección llamada "Datos" a la vez. Los documentos que se insertan están en el formato de pares de valores clave, con las teclas "Título" y "Desc" y sus respectivos valores. Los valores que se insertan incluyen "John", "John", "Idk" y "Lisa" para la llave "Título" y "A Random Guy", "Good Boy", "Idontnow" y "Enginer" para el " Desc "clave. El comando es agregar 4 nuevos documentos. La salida muestra el "reconocido" como un valor booleano, que se establece en verdadero, lo que indica que la consulta fue reconocida y ejecutada por el servidor MongoDB con éxito.

Prueba> DB.Datos.InsertMany ([Título: "John", Desc: "A Random Guy", Título: "John", Desc: "Good Boy", Título: "Idk", Desc: "Idontnow", Título : "Lisa", Desc: "Enginderer"])

Reconocido: verdadero,
insertedids:
'0': ObjectId ("63C90D6A42844A817C33167C"),
'1': ObjectId ("63C90D6A42844A817C33167D"),
'2': ObjectId ("63C90D6A42844A817C33167E"),
'3': ObjectId ("63C90D6A42844A817C33167F")

Muestra los registros de la colección

Después de insertar un total de 4 registros en la recopilación de "datos" de la base de datos de "prueba", debemos verificar los documentos al menos una vez. Por lo tanto, necesitamos mostrar los registros insertados en la carcasa MongoDB para ver. El comando para ver los registros se ha adjunto a continuación. Al usar el método MongoDB find (), recuperamos todos los documentos de la recopilación de "datos". El objeto vacío aprobado como argumento al método find () significa que no se aplica una condición de filtrado y se devolverán todos los documentos de la colección. El resultado de este comando es una variedad de documentos, cada uno que contiene los campos _id, título y DESC y sus valores respectivos, que se agregaron anteriormente en la colección. La salida confirma que los documentos están presentes en la colección y se pueden recuperar para su posterior procesamiento.

Prueba> DB.Datos.encontrar()
[_id: ObjectId ("63C90D6A42844A817C33167C"), Título: 'John', Desc: 'Un chico al azar',
_id: ObjectId ("63C90D6A42844A817C33167D"), Título: 'John', Desc: 'Good Boy',
_id: ObjectId ("63C90D6A42844A817C33167E"), Título: 'IDK', DESC: 'IDONTKEK',
_id: ObjectId ("63C90D6A42844A817C33167F"), Título: 'Lisa', Desc: 'Enginer']

Ejemplo # 01:

En nuestra primera ilustración de MongoDB, utilizaremos el operador STRCASECMP para realizar una comparación entre dos valores de cadena: comparación insensible. Para esto, vamos a ejecutar la consulta que se muestra a continuación en el shell MongoDB que está utilizando la función agregada de MongoDB para realizar una serie de operaciones en una colección llamada "Datos". La primera operación es una etapa de proyecto $, que modifica los documentos en la colección agregando o eliminando campos. En este caso, la etapa $ Project mostrará todos los registros del "título" del campo junto con agregar un nuevo campo llamado "resultado" a cada documento, que es el resultado de comparar el valor del campo "Título" con la cadena "idk" usando el operador $ strcasecmp.

La comparación es insensible al caso, lo que significa que "John" y "John" se considerarían iguales. El nuevo campo "Resultado" muestra la salida de la comparación del campo "Título" con "IDK". 0 en el tercer registro muestra que la cadena "ID" es igual a la cadena "IDK" en el campo "Título", mientras que el resto es 1.

Prueba> DB.Datos.Aggregate ([$ Project: Título: 1, resultado: $ strcasecmp: ["$ title", "idk"]]))
[_id: ObjectId ("63C90D6A42844A817C33167C"), Título: 'John', resultado: 1,
_id: ObjectId ("63C90D6A42844A817C33167D"), Título: 'John', resultado: 1,
_id: ObjectId ("63C90D6A42844A817C33167E"), Título: 'IDK', Resultado: 0,
_id: ObjectId ("63C90D6A42844A817C33167f"), Título: 'Lisa', resultado: 1]

Ejemplo # 02:

Tengamos una nueva ilustración de comparar cadenas de manera insensible a los casos dentro de la base de datos MongoDB. Esta vez, el código que hemos estado utilizando es utilizar la misma función agregada para realizar una comparación en el campo "Título". La etapa de proyecto $ está creando un nuevo campo con el mismo nombre: "resultado" que almacena la salida de la comparación. A modo de comparación, estamos usando el mismo operador de $ strcasecmp. El operador $ strcasecMP se pasa con dos argumentos: "$ Título", que es el valor del campo "Título" en cada documento, y "John", que es la cadena que se usa como el valor de comparación. En este ejemplo, el primer documento tiene un campo de "título" de 'John', que es igual a "John", por lo que el resultado es 0.

El segundo documento tiene un campo de "título" de 'John', que también es igual a "John" pero en mayúscula. Entonces, el "resultado" también es 0. El tercer documento tiene un campo de "título" de 'IDK', que es menos que "John" en términos de orden lexicográfica, por lo que el resultado es -1. El cuarto documento tiene un campo de "título" de 'Lisa', que es mayor que "John" en términos de orden lexicográfica, por lo que el resultado es 1.

Prueba> DB.Datos.Aggregate ([$ Project: Título: 1, resultado: $ strcasecmp: ["$ title", "John"]])
[_id: ObjectId ("63C90D6A42844A817C33167C"), Título: 'John', resultado: 0,
_id: ObjectId ("63C90D6A42844A817C33167D"), Título: 'John', resultado: 0,
_id: ObjectId ("63C90D6A42844A817C33167E"), Título: 'IDK', resultado: -1,
_id: ObjectId ("63C90D6A42844A817C33167f"), Título: 'Lisa', resultado: 1]

Ejemplo # 03:

En nuestra última ilustración, utilizaremos el campo "Desc" de la recopilación de "datos" que se compararán con una nueva cadena. El operador $ strcasecMP se está aprobando dos argumentos: "$ descianos", que es el valor del campo "DESC" en cada documento y "idontnowking", que es la cadena que se usa como el valor de comparación.

El primer, segundo y cuarto documentos tienen un campo "Desc" de 'un tipo aleatorio', que es menor o mayor que la cadena "idontad" en términos de orden lexicográfico. Entonces, el resultado de estos registros es -1. El tercer documento tiene un campo "Desc" de 'Idontknow', que es igual a "Idontnow", independientemente del caso de las letras, por lo que el resultado es 0.

Prueba> DB.Datos.Aggregate ([$ Project: Desc: 1, resultado: $ strcasecmp: ["$ desc", "idontknow"]]))
[_id: ObjectId ("63C90D6A42844A817C33167C"), Desc: 'un tipo aleatorio', resultado: -1,
_id: ObjectId ("63C90D6A42844A817C33167D"), Desc: 'Good Boy', resultado: -1,
_id: ObjectId ("63C90D6A42844A817C33167E"), descloma: 'idontnok', resultado: 0,
_id: ObjectId ("63C90D6A42844A817C33167f"), descleno: 'Enginnerer', resultado: -1]

Conclusión

Esta guía introduce el concepto y el uso del operador STRCASECMP de MongoDB. Hemos creado una nueva colección y realizamos comandos de función agregado () junto con el operador STRCASECMP para demostrar el uso del operador STRCASECMP. Los ejemplos utilizados en este artículo demuestran cómo se puede comparar una sola cadena de casos insensiblemente con los valores de la cadena de los campos de recolección.