Quantcast
Channel: Planeta Linux Venezuela
Viewing all articles
Browse latest Browse all 1457

Yohan Graterol: Los operadores relacionales en #MongoDB

$
0
0

Con gran paso me adentro en el mundo NoSQL, especificamente en MongoDB, y una de las cosas que llegaremos a usar con frecuencia son los operadores de igualdad y de relaciones.

Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 8<4 ocho=”" menor=”" que=”" cuatro=”" es=”" falsa=”" strong=”">false. En la primera columna de la tabla, se dan los símbolos de los operadores relacionales, el la segunda, el nombre de dichos operadores, y a continuación su significado mediante un ejemplo.

Operadornombreejemplosignificado
<menor quea<ba es menor que b
>mayor quea>ba es mayor que b
==igual aa==ba es igual a b
!=no igual aa!=ba no es igual a b
<=menor que o igual aa<=5 em=”">a es menor que o igual a b
>=mayor que o igual aa>=ba es menor que o igual a b

Fuente

En SQL usamos esos simbolos tal cual, en MongoDB no, pero aun asi son muy sencillos de utilizar. Ahora, veamos como son los operadores relacionales en MongoDB.

  • Mayor que “>” ===> “$gt”
  • Mayor o igual que “>=” ===>$gte”
  • Menor que “<” ===>“$lt”
  • Menor o igual que “<=” ===>“$lte”
  • No igual que “!=” ===>“$ne”

Mayor que ($gt)

Con MongoDB usar los operadores de relaciones al inicio puede parecer algo “engorroso”, pero luego que se le agarra el “hilo”, todo fluye de la mejor manera. En el caso de mayor que, la sintaxis es la siguiente { clave: {“$gt”: valor} }, para indicarle que busque los documentos con los valores de la clave mayores que el valor.

Ejemplo:

Primero que nada ejecutamos el siguiente codigo en MongoDB, para generar 100 datos de prueba.

1
2
3
>for(i =0; i <100; i++){
... db.datos.insert({dias: i});
... }

Hagamos la búsqueda, que muestre todos los días mayores que 90 “db.datos.find({dias: {“$gt”: 90}})

1
2
3
4
5
6
7
8
9
10
> db.datos.find({dias: {"$gt": 90}})
{"_id" : ObjectId("5152714195fea94549f75483"), "dias" : 91}
{"_id" : ObjectId("5152714195fea94549f75484"), "dias" : 92}
{"_id" : ObjectId("5152714195fea94549f75485"), "dias" : 93}
{"_id" : ObjectId("5152714195fea94549f75486"), "dias" : 94}
{"_id" : ObjectId("5152714195fea94549f75487"), "dias" : 95}
{"_id" : ObjectId("5152714195fea94549f75488"), "dias" : 96}
{"_id" : ObjectId("5152714195fea94549f75489"), "dias" : 97}
{"_id" : ObjectId("5152714195fea94549f7548a"), "dias" : 98}
{"_id" : ObjectId("5152714195fea94549f7548b"), "dias" : 99}

Imprime los días mayores a 90, es decir desde el 91 hasta el 99. Los demás ejemplos son similares, solo que aplicando el operador correspondiente.

Mayor o igual que ($gte)

Busquemos los documentos con dias mayores o iguales a 90 “db.datos.find({dias: {“$gte”: 90}})

1
2
3
4
5
6
7
8
9
10
11
> db.datos.find({dias: {"$gte": 90}})
{"_id" : ObjectId("5152714195fea94549f75482"), "dias" : 90}
{"_id" : ObjectId("5152714195fea94549f75483"), "dias" : 91}
{"_id" : ObjectId("5152714195fea94549f75484"), "dias" : 92}
{"_id" : ObjectId("5152714195fea94549f75485"), "dias" : 93}
{"_id" : ObjectId("5152714195fea94549f75486"), "dias" : 94}
{"_id" : ObjectId("5152714195fea94549f75487"), "dias" : 95}
{"_id" : ObjectId("5152714195fea94549f75488"), "dias" : 96}
{"_id" : ObjectId("5152714195fea94549f75489"), "dias" : 97}
{"_id" : ObjectId("5152714195fea94549f7548a"), "dias" : 98}
{"_id" : ObjectId("5152714195fea94549f7548b"), "dias" : 99}

Menor que ($lt)

Busquemos los documentos con dias menores a 10 “db.datos.find({dias: {“$lt”: 10}})

1
2
3
4
5
6
7
8
9
10
11
> db.datos.find({dias: {"$lt": 10}})
{"_id" : ObjectId("5152714195fea94549f75428"), "dias" : 0}
{"_id" : ObjectId("5152714195fea94549f75429"), "dias" : 1}
{"_id" : ObjectId("5152714195fea94549f7542a"), "dias" : 2}
{"_id" : ObjectId("5152714195fea94549f7542b"), "dias" : 3}
{"_id" : ObjectId("5152714195fea94549f7542c"), "dias" : 4}
{"_id" : ObjectId("5152714195fea94549f7542d"), "dias" : 5}
{"_id" : ObjectId("5152714195fea94549f7542e"), "dias" : 6}
{"_id" : ObjectId("5152714195fea94549f7542f"), "dias" : 7}
{"_id" : ObjectId("5152714195fea94549f75430"), "dias" : 8}
{"_id" : ObjectId("5152714195fea94549f75431"), "dias" : 9}

Menor o igual que ($lte)

Documentos menores o iguales que 10 “db.datos.find({dias: {“$lte”: 10}})

1
2
3
4
5
6
7
8
9
10
11
12
> db.datos.find({dias: {"$lte": 10}})
{"_id" : ObjectId("5152714195fea94549f75428"), "dias" : 0}
{"_id" : ObjectId("5152714195fea94549f75429"), "dias" : 1}
{"_id" : ObjectId("5152714195fea94549f7542a"), "dias" : 2}
{"_id" : ObjectId("5152714195fea94549f7542b"), "dias" : 3}
{"_id" : ObjectId("5152714195fea94549f7542c"), "dias" : 4}
{"_id" : ObjectId("5152714195fea94549f7542d"), "dias" : 5}
{"_id" : ObjectId("5152714195fea94549f7542e"), "dias" : 6}
{"_id" : ObjectId("5152714195fea94549f7542f"), "dias" : 7}
{"_id" : ObjectId("5152714195fea94549f75430"), "dias" : 8}
{"_id" : ObjectId("5152714195fea94549f75431"), "dias" : 9}
{"_id" : ObjectId("5152714195fea94549f75432"), "dias" : 10}

No Igual que ($ne)

Mostremos todos los documentos menores o igual que 10 y distintos de 5 “db.datos.find({dias: {“$lte”: 10,  “$ne”: 5}})

1
2
3
4
5
6
7
8
9
10
11
> db.datos.find({dias: {"$lte": 10,  "$ne": 5}})
{"_id" : ObjectId("5152714195fea94549f75428"), "dias" : 0}
{"_id" : ObjectId("5152714195fea94549f75429"), "dias" : 1}
{"_id" : ObjectId("5152714195fea94549f7542a"), "dias" : 2}
{"_id" : ObjectId("5152714195fea94549f7542b"), "dias" : 3}
{"_id" : ObjectId("5152714195fea94549f7542c"), "dias" : 4}
{"_id" : ObjectId("5152714195fea94549f7542e"), "dias" : 6}
{"_id" : ObjectId("5152714195fea94549f7542f"), "dias" : 7}
{"_id" : ObjectId("5152714195fea94549f75430"), "dias" : 8}
{"_id" : ObjectId("5152714195fea94549f75431"), "dias" : 9}
{"_id" : ObjectId("5152714195fea94549f75432"), "dias" : 10}

Y el Igual que?

El igual que no tiene un operador especial en MongoDB, sencillamente son los dos puntos, al decir “db.datos.find({dias:5})“, se dice que muestre los documentos donde días sea IGUAL que 5.

1
2
> db.datos.find({dias:5})
{"_id" : ObjectId("5152714195fea94549f7542d"), "dias" : 5}

Finalizando

Este post fue mas que todo practico, cada ejemplo se auto-explica, cualquier duda o sugerencia pueden hacer un comentario.


Viewing all articles
Browse latest Browse all 1457

Latest Images

Trending Articles