Nota: Recuerda que este artículo foma parte del tutorial de MongoDB, al que puedes acceder desde este enlace. En el tutorial explico como instalar MongoDB, como conectar a la base de datos o cosas más avanzadas com Aggregation Framework y conjuntos de réplicas.
En el pasado artículo, hicimos una aproximación a los comandos find y findOne, para realizar consultas sencillas sobre MongoDB. En esta entrada profundizaremos un poco más y explicaremos consultas más complicadas. Inicialmente había pensado explicar todo en un solo artículo, pero creo que este hubiera sido demasiado largo, así que vamos a dividirlo en dos partes.
Operaciones de comparación
> db.people.find({age:{$gt:30}},{name:1,age:1})
> db.people.find({age:{$gte:30}},{name:1,age:1})
> db.people.find({age:{$lt:30}},{name:1,age:1})
> db.people.find({age:{$ne:30}},{name:1,age:1})
> db.people.find({age:{$in:[25,30,35]}},{name:1,age:1})
Esta consulta nos devuelve todos las presonas cuyas edades son igual a 25, 30 o 35.
Comparaciones con strings
{ "_id" : "AAab" }
{ "_id" : "Abb" }
{ "_id" : "Abc" }
{ "_id" : "BCb" }
{ "_id" : "Bbaab" }
{ "_id" : "abb" }
{ "_id" : "abc" }
{ "_id" : "bcb" }
Operaciones según la existencia o el tipo de los elementos
> db.people.find({company:{$exists:true}},{name:1,age:1,company:1})
> db.people.find({company:{$type:2}},{name:1,age:1,company:1})
Operaciones lógicas
> db.people.find(
{ $or:
[
{gender:"female"},
{age:{$gt:20}}
]
} ,
{name:1,gender:1,age:1} )
> db.people.find( {gender:"female", age:{$gt:20}} , {name:1,gender:1,age:1} )
> db.people.find(
{
$and:
[
{gender:"female"},
{age:{$gt:20}}
]
} ,
{name:1,gender:1,age:1} )
> db.people.find( {age:{$gt:30},age:{$lt:40}} , {name:1,gender:1,age:1} )
> db.people.find( {age:{$lt:40},age:{$gt:30}} , {name:1,gender:1,age:1} )
> db.people.find(
{
$and:
[
{age:{$gt:30}},
{age:{$lt:40}}
]} ,
{name:1,gender:1,age:1} )
db.people.find(
{$or:
[ {age:{$gt:30}},
{$and:[
{age:{$gt:50}},
{gender:"female"}
]
}
]
})
> db.people.find( {age:{$not:{$gt:30}}})
> db.people.find({$nor:[{age:{$gt:30}},{isActive:true}]},{age:1,isActive:1})
db.people.find(
{$nor:
[ {age:{$gt:30}},{age:{$exists:false}},
{isActive:true},{isActive:{$exists:false}}
]
})
Conclusión
¿Te ha gustado el artículo? No te olvides de hacer +1 en Google+, Me gusta en Facebook o de publicarlo en Twitter. ¡ Gracias !
Recuerda que puedes ver el índice del tutorial y acceder a todos los artículos de la serie desde aquí.
¿Quiéres que te avisemos cuando se publiquen nuevas entradas en el blog?
Suscríbete por correo electrónico o por RSS