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.