Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Especifique los campos a devolver

En esta guía, se puede aprender cómo especificar qué campos devolver de una operación de lectura utilizando una proyección. Una proyección es un documento que especifica qué campos devuelve MongoDB de una query.

Los ejemplos de esta guía utilizan la colección restaurants en la base de datos sample_restaurants de los conjuntos de datos de muestra de Atlas. Para aprender cómo crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulta la guía de MongoDB Comenzar.

Los documentos de esta colección están modelados por la siguiente clase de datos Kotlin:

data class Restaurant(
@BsonId
val id: ObjectId? = null,
val name: String,
val borough: String,
val cuisine: String
)

Puedes usar una proyección para especificar qué campos incluir en un documento de retorno o para especificar qué campos excluir.

Cuando se especifican ciertos campos para incluir en una proyección, todos los demás campos se excluyen implícitamente (excepto el campo _id, que se incluye por defecto). No se pueden combinar instrucciones de inclusión y exclusión en una sola proyección, a menos que se esté excluyendo el campo _id.

Para remover el campo _id del documento devuelto, debes excluirlo explícitamente.

Utiliza la siguiente sintaxis para especificar los campos que deseas incluir en el resultado:

val projection = Projection.fields(
Projections.include(<fieldName1>, <fieldName2>, ...)
)

El siguiente ejemplo utiliza el método find() para localizar todos los restaurantes con el valor del campo name igual a "Emerald Pub". Luego utiliza una proyección para devolver únicamente los campos name, cuisine y borough de los documentos devueltos.

val projection = Projections.fields(
Projections.include(
Restaurant::name.name,
Restaurant::cuisine.name,
Restaurant::borough.name
)
)
val results = collection
.find(eq(Restaurant::name.name, "Emerald Pub"))
.projection(projection)
results.forEach { result ->
println(result)
}
Restaurant(id=5eb3d668b31de5d588f429e2, name=Emerald Pub, borough=Manhattan, cuisine=American)
Restaurant(id=5eb3d668b31de5d588f432dd, name=Emerald Pub, borough=Queens, cuisine=American)

Al especificar los campos a incluir, también puedes excluir el campo _id del documento devuelto.

El siguiente ejemplo ejecuta la misma query que el ejemplo anterior, pero excluye el campo _id de la proyección:

val projection = Projections.fields(
Projections.excludeId(),
Projections.include(
Restaurant::name.name,
Restaurant::cuisine.name,
Restaurant::borough.name
)
)
val results = collection
.find(eq(Restaurant::name.name, "Emerald Pub"))
.projection(projection)
results.forEach { result ->
println(result)
}
Restaurant(id=null, name=Emerald Pub, borough=Manhattan, cuisine=American)
Restaurant(id=null, name=Emerald Pub, borough=Queens, cuisine=American)

Para obtener más información sobre proyecciones, consulta la Guía de campos de proyecto en el Manual del Servidor de MongoDB.

Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API: