Consultas MongoDb

En esta ocasión un pequeño recopilatorio sobre comandos básicos de MongoDb:

Las consultas se realizan con el comando find()

db.foo.find(query, projection)

query indica cual es el criterio a buscar.

projection  indica que campos hace falta, son campos que se pueden incluir o excluir.

db.foo.find({_id:1}, {_id:1})

El 1 indica que ese campo se incluye, un 0 no incluiría ese, hay una excepción y es el campo _id que siempre se incluye a no ser que se excluya de forma explícita, no se puede combinar o se incluyen todos o se excluyen todos (todos 1s o todo 0s).

A continuación una tabla tipo con los criterios de búsqueda más utilizados:

{$gt} Mayor que db.foo.find({_id: {$gt:5}},{_id:1})
{$lt} Menor que db.foo.find({_id: {$lt:5}},{_id:1})
{$lte} Menor que o igual db.foo.find({_id: {$lte:5}},{_id:1})
{$gte} Mayor que o igual db.foo.find({_id: {$gte:5}},{_id:1})
{$not} Negar la premisa db.foo.find({_id: {$not: {$gt:2}}}, {_id:1})
{$in} Valores en rango db.foo.find({_id: {$in: [1,3]}},{_id:1})
{$nin} Valores no en rango db.foo.find({_id: {$nin: [1,3]}},{_id:1})
{$all} Deben coincidir todos los valores db.foo.find({tags: {$all: [‘cute’,’ocean’]}}, {name:1})
{$exists} Verifica si el campo existe o no (true, false) db.foo.find({“info.canFly”: {$exists:false}},{name:1})

Se pueden concatenar filtros, aquí se estaría indicando todos los que sean mayores que uno y menores que 4 (2 y 3).

db.foo.find({_id: {$gte:2,$lt:4}},{_id:1})

Para buscar por texto hay que tener en cuenta que el texto es sensible a mayúsculas y minúsculas, tanto el nombre del campo como el valor.

db.foo.find({tags: ‘cute’}, {name:1})

 Para indicar un nulo se haría:

db.foo.find({“info.canFly”:null},{name:1})

 Esto devuelve tanto campos nulos como campos que no existen.

Consultas MongoDb