Artículos
MongoDB

MongoDB Projection: Seleccionar campos de un documento

08/Feb/2014

Si realizamos una consulta MongoDB Find lo que retornara dicha consulta es el conjunto de documentos que correspondan a dicha consulta. Se devolverán los documentos completos con todos sus campos. Si bien podemos realizar MongoDB Projection, que es seleccionar los campos de un documento que queremos devuelva la consulta.

Para especificar el MongoDB Projection dentro del método .find() deberemos de hacerlo como último parámetro del método. La sintaxis para el MongoDB Projection será la siguiente:

db.coleccion.find({filtros},{projection});

Asumiento que ya sabes realizar filtros… o échale un ojo a nuestros ejemplos del método MongoDB Find. Vamos a revisar como se haría el MongoDB Projection.

Si queremos seleccionar varios campos simplemente tenemos que indicar el nombre del campo seguido de un 1. O bien utilizar un 0 para eliminar los campos a mostrar.

db.coleccion.find({filtros},{campo1:0|1,campo2:'0|1,...,campoN:0|1});

De esta forma en 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 }

Si queremos mostrar solo el nombre de la ciudad, ejecutaremos la siguiente consulta:

cursor = db.ciudades.find({habitantes:{$gt:1000000}},{ciudad:1});

Curiosamente el resultado será el siguiente:

{ "_id" : ObjectId("525ab02733b01a66a9dcbc5b"), "ciudad" : "Madrid" }
{ "_id" : ObjectId("525ab02733b01a66a9dcbc5c"), "ciudad" : "Barcelona" }

Vaya, queríamos mostrar solo la ciudad y resulta que nos muestra también el ObjectID.

En MongoDB Projection el campo ObjectID se mostrará siempre a no ser que indiquemos que no se tiene que mostrar.

Así que para eliminar el ObjectID tendremos que ejecutar la siguiente consulta:

cursor = db.ciudades.find({habitantes:{$gt:1000000}},{ciudad:1,_id:0});

Podemos conseguir el mismo efecto de devolver solo el nombre de la ciudad si eliminamos la aparición del campo habitantes, es decir, asignandole un 0 en el MongoDB Projection.

cursor = db.ciudades.find({habitantes:{$gt:1000000}},{habitantes:0,_id:0});

Ya hemos visto como manipular de forma sencilla los campos a mostrar en la consulta mediante el MongoDB

Código Fuente

Descárgate el código fuente de MongoDB Projection: Seleccionar campos de un documento
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre MongoDB

Disfruta también de nuestros artículos sobre MongoDB en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test MongoDB

¿Te atreves a probar tus habilidades y conocimiento en MongoDB con nuestro test?

Test MongoDB
Suscribir
Notificar de
guest
1 Comentario
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios