Resumen del capítulo
Este capítulo presenta cómo configurar el retorno de campos especificados en las consultas de MongoDB en lugar de retornar todos los datos de campo.
Datos de prueba
Inserta algunos datos en la colección de inventario
db.inventory.insertMany( [
{ item: "diario", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] },
{ item: "cuaderno", status: "A", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] },
{ item: "papel", status: "D", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "A", qty: 60 } ] },
{ item: "planificador", status: "D", size: { h: 22.85, w: 30, uom: "cm" }, instock: [ { warehouse: "A", qty: 40 } ] },
{ item: "postal", status: "A", size: { h: 10, w: 15.25, uom: "cm" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);
Formato
{<campo>: 1 o 0}
Explicación:
-
- nombre del campo - 1 representa retornar el campo, 0 representa excluir el campo (es decir, no retornarlo)
Consejo: El uso de true/false en lugar de 1 y 0 también es aceptable.
Retornar campos especificados
Configura qué campos retornar a través del segundo parámetro de la función find.
db.inventory.find( { status: "A" }, { item: 1, status: 1 } )
Explicación:
- Se consultan los documentos donde el estado satisface A.
- Retorna los campos _id, item y status.
Consejo: El campo _id se retorna por defecto.
Equivalente en SQL:
SELECT item, status from inventory WHERE status = "A"
Excluir campos especificados
db.inventory.find( { status: "A" }, { status: 0, instock: 0 } )
Explicación:
- Se consultan los documentos donde el estado satisface A.
- Retorna todos los datos excepto los campos item y status.
Retornar campos especificados en documentos anidados
db.inventory.find(
{ status: "A" },
{ item: 1, status: 1, "size.uom": 1 }
)
Explicación:
- size.uom representa retornar el campo uom bajo size.