Por supuesto, las proyecciones en MongoDB se utilizan para incluir o excluir campos específicos en los documentos devueltos por una consulta. Aquí tienes varios ejemplos de consultas con proyecciones utilizando la colección libros
:
1. Incluir solo el campo titulo
db.libros.find({}, { titulo: 1, _id: 0 }).pretty()
2. Incluir solo los campos titulo
y autor
db.libros.find({}, { titulo: 1, autor: 1, _id: 0 }).pretty()
3. Excluir el campo editorial
db.libros.find({}, { editorial: 0 }).pretty()
4. Incluir solo los campos titulo
, autor
y fecha_publicacion
db.libros.find({}, { titulo: 1, autor: 1, fecha_publicacion: 1, _id: 0 }).pretty()
5. Incluir solo el campo genero
db.libros.find({}, { genero: 1, _id: 0 }).pretty()
6. Incluir solo el campo titulo
y obtener los libros ordenados por fecha_publicacion
(ascendente)
db.libros.find({}, { titulo: 1, _id: 0 }).sort({ fecha_publicacion: 1 }).pretty()
7. Excluir el campo _id
db.libros.find({}, { _id: 0 }).pretty()
8. Incluir solo los campos titulo
y fecha_publicacion
para libros de un autor específico
db.libros.find({ autor: "George Orwell" }, { titulo: 1, fecha_publicacion: 1, _id: 0 }).pretty()
9. Incluir solo los campos titulo
y genero
para libros publicados después de 1950
db.libros.find({ fecha_publicacion: { $gt: new Date("1950-01-01") } }, { titulo: 1, genero: 1, _id: 0 }).pretty()
10. Incluir solo el campo autor
y contar cuántos libros tiene cada autor (proyección con agregación)
db.libros.aggregate([
{ $group: { _id: "$autor", total: { $sum: 1 } } },
{ $project: { autor: "$_id", total: 1, _id: 0 } }
])
11. Incluir solo los campos titulo
y editorial
para libros de un género específico
db.libros.find({ genero: "Realismo Mágico" }, { titulo: 1, editorial: 1, _id: 0 }).pretty()
12. Incluir solo los campos titulo
y fecha_publicacion
y excluir libros publicados antes de 1950
db.libros.find({ fecha_publicacion: { $gte: new Date("1950-01-01") } }, { titulo: 1, fecha_publicacion: 1, _id: 0 }).pretty()
13. Incluir solo el campo titulo
y mostrar los libros en orden descendente de fecha_publicacion
db.libros.find({}, { titulo: 1, _id: 0 }).sort({ fecha_publicacion: -1 }).pretty()
14. Incluir solo los campos titulo
, autor
y genero
para libros de una editorial específica
db.libros.find({ editorial: "Viking Press" }, { titulo: 1, autor: 1, genero: 1, _id: 0 }).pretty()
15. Incluir solo el campo genero
y contar cuántos libros hay en cada género (proyección con agregación)
db.libros.aggregate([
{ $group: { _id: "$genero", total: { $sum: 1 } } },
{ $project: { genero: "$_id", total: 1, _id: 0 } }
])
Estas proyecciones te permiten controlar qué campos se devuelven en los resultados de tus consultas, lo cual es útil para optimizar el rendimiento y la claridad de los datos que necesitas.