domingo, 30 de junio de 2013

Consulta de documentos que contienen un campo en MongoDB

Hemos vistos anteriormente que en MongoDB los documentos pueden tener una estructura diferente, algunos campos pueden estar presente en un documento y otros no. Para ello vamos a explicar como mostrar todos los documentos que contengan un campo especifico.
Supongamos que tenemos la siguiente coleccion llamada Personal;
db.personal.insert({ nombre: "Daniel Romero", año: "2013", profesion: "Informatico", blog:"HispaBigData"});
db.personal.insert({ nombre: "Alberto Hernandez", año: "2012", profesion: "Informatico", blog:"HispaBigData"});
db.personal.insert({ nombre: "Raul Garcia", año: "2010", profesion: "Pintor"});
db.personal.insert({ nombre: "Manuel Sanchez", año: "2011", profesion: "Arquitecto"});
db.personal.insert({ nombre: "Antonio Gallardo", año: "2012", profesion: "Diseñadir", blog:"Diseñate"});
Coleccion de personal por HispaBigdata

La idea es mostrar de la colección Personal, cuales tienen un blog, para ello vamos a usar el operador $exists
db.personal.find( { blog : { $exists : true } } );
Filtro por existencia de campo por HispaBigdata

También podemos realizar la búsqueda inversa y mostrar todos los documentos de Personal que no tengan un blog:
db.personal.find( { blog : { $exists : false } } );
Filtro por no existencia de campo por HispaBigdata

Como veis es un proceso sencillo y útil, que nos puede facilitar el trabajo para filtrar aquellos documentos que puedan estar incompletos o que no cumplan un requisito en nuestra búsqueda.

No hay comentarios:

Publicar un comentario en la entrada