Ya hemos visto el funcionamiento del Operador MongoDB AND en el cual podíamos realizar operaciones en la cuales se cumpliesen dos condiciones o filtros. En este caso vamos a ver como realizar operaciones que se pueden realizar cuando se cumpla un campo u otro. Para ello vamos revisar el uso del operador MongoDB OR.
La estructura es muy similar al operador MongoDB AND, pero en este caso vamos a utilizar el elemento $or. La estructura del operador MongoDB es la siguiente:
db.coleccion.find({$or:[{filtro1},{filtro2},...{filtroN}]});
De esta forma si, de nuestra colección de ciudades:
{ "_id" : ObjectId("525ab02733b01a66a9dcbc5b"), "ciudad" : "Madrid", "habitantes" : 3233527 } { "_id" : ObjectId("525ab02733b01a66a9dcbc5c"), "ciudad" : "Barcelona", "habitantes" : 1620943 } { "_id" : ObjectId("525ab02733b01a66a9dcbc5d"), "ciudad" : "Valencia", "habitantes" : 797028 } { "_id" : ObjectId("525ab02733b01a66a9dcbc5e"), "ciudad" : "Sevilla", "habitantes" : 702355 } { "_id" : ObjectId("525ab02733b01a66a9dcbc5f"), "ciudad" : "Zaragoza", "habitantes" : 679624 }
Queremos sacar ciudades que bien empiecen por M o bien empiecen por Z tendremos que utilizar nuestro operador MongoDB OR de la siguiente forma:
cursor = db.ciudades.find({$or:[{ciudad:/^M/},{ciudad:/^Z/}]});
Vemos que cada una de las opciones que queramos concatenar con el operador MongoDB OR van dentro del array separadas por comas.
Ya solo tenemos que mostrar el resultado recorriendo el cursor:
while (cursor.hasNext()){
printjson(cursor.next());
}
Como podéis comprobar el uso del operador MongoDB OR es muy sencillo. Solo hay que tener cuidado con el uso de las llaves, como en todo MongoDB ;-).