Hemos visto que el método 'find':
Si no le pasamos parámetros nos retorna todos los documentos de la colección que hace referencia:
db.libros.find()
El primer parámetro en el caso que lo indiquemos filtra la colección y recupera los documentos que cumplen la condición:
db.libros.find({precio : 50 })
Recuperamos todos los libros que tienen un precio igual a 50.
Hay un segundo parámetro opcional en el cual debemos indicar que campos del documento queremos recuperar:
use base1
db.libros.drop()
db.libros.insertOne(
{
_id: 1,
titulo: 'El aleph',
autor: 'Borges',
editorial: ['Siglo XXI','Planeta'],
precio: 20,
cantidad: 50
}
)
db.libros.insertOne(
{
_id: 2,
titulo: 'Martin Fierro',
autor: 'Jose Hernandez',
editorial: ['Siglo XXI'],
precio: 50,
cantidad: 12
}
)
db.libros.insertOne(
{
_id: 3,
titulo: 'Aprenda PHP',
autor: 'Mario Molina',
editorial: ['Siglo XXI','Planeta'],
precio: 50,
cantidad: 20
}
)
db.libros.insertOne(
{
_id: 4,
titulo: 'Java en 10 minutos',
editorial: ['Siglo XXI'],
precio: 45,
cantidad: 1
}
)
db.libros.find({precio : 50 },{titulo:1,cantidad:1})
En el segundo parámetro del método 'find' debemos especificar cada campo y un valor 1 indicando que se lo quiere recuperar. El campo _id se recupera por defecto, salvo que indiquemos con un valor 0 para que no se recupere:

Solo se recuperan los campos titulo,cantidad y _id.
Crear la colección 'articulos' en la base de datos 'base1' (eliminar la colección previamente), cargar luego 6 documentos:
use base1
db.articulos.drop()
db.articulos.insertOne(
{
_id: 1,
nombre: 'MULTIFUNCION HP DESKJET 2675',
rubro: 'impresora',
precio: 3000,
stock: 20
}
)
db.articulos.insertOne(
{
_id: 2,
nombre: 'MULTIFUNCION EPSON EXPRESSION XP241',
rubro: 'impresora',
precio: 3700,
stock: 5
}
)
db.articulos.insertOne(
{
_id: 3,
nombre: 'LED 19 PHILIPS',
rubro: 'monitor',
precio: 4500,
stock: 2
}
)
db.articulos.insertOne(
{
_id: 4,
nombre: 'LED 22 PHILIPS',
rubro: 'monitor',
precio: 5700,
stock: 4
}
)
db.articulos.insertOne(
{
_id: 5,
nombre: 'LED 27 PHILIPS',
rubro: 'monitor',
precio: 12000,
stock: 1
}
)
db.articulos.insertOne(
{
_id: 6,
nombre: 'LOGITECH M90',
rubro: 'mouse',
precio: 300,
stock: 4
}
)
Imprimir todos los documentos de la colección 'articulos', mostrar solo los campos _id y nombre.
Imprimir todos los documentos de la colección 'articulos' que son impresoras, mostrar solo los campos nombre y precio.
Imprimir todas las impresoras que tienen un precio mayor o igual a 3500. Solo mostrar los campos _id, nombre, precio y stock
Imprimir todos los documentos de la colección 'articulos' que son monitor, mostrar solo los campos nombre y precio ordenados de menor a mayor.
use base1
db.articulos.drop()
db.articulos.insertOne(
{
_id: 1,
nombre: 'MULTIFUNCION HP DESKJET 2675',
rubro: 'impresora',
precio: 3000,
stock: 20
}
)
db.articulos.insertOne(
{
_id: 2,
nombre: 'MULTIFUNCION EPSON EXPRESSION XP241',
rubro: 'impresora',
precio: 3700,
stock: 5
}
)
db.articulos.insertOne(
{
_id: 3,
nombre: 'LED 19 PHILIPS',
rubro: 'monitor',
precio: 4500,
stock: 2
}
)
db.articulos.insertOne(
{
_id: 4,
nombre: 'LED 22 PHILIPS',
rubro: 'monitor',
precio: 5700,
stock: 4
}
)
db.articulos.insertOne(
{
_id: 5,
nombre: 'LED 27 PHILIPS',
rubro: 'monitor',
precio: 12000,
stock: 1
}
)
db.articulos.insertOne(
{
_id: 6,
nombre: 'LOGITECH M90',
rubro: 'mouse',
precio: 300,
stock: 4
}
)
db.articulos.find({},{nombre:1})
db.articulos.find({ rubro : 'impresora' }, {_id:0, nombre:1, precio:1})
db.articulos.find({ rubro : {$eq: 'mouse'} })
db.articulos.find({ precio : {$gte: 5000} }, {nombre:1, precio:1, stock:1})
db.articulos.find({ rubro : 'monitor' }, {_id:0, nombre:1, precio:1}).sort({precio:1})