8 - Recuperar algunos documentos de una colección con el método find

Vimos en conceptos anteriores que podemos recuperar todos los documentos de una colección mediante el método find:

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()

Puede evitar escribir todo el código anterior copiando todo el código anterior y desde el menú del shell de MongoDB pegar el bloque con la opción:

MongoDB pegar comandos en el shell de MongoDB

El resultado de ejecutar el bloque de comandos es:

MongoDB find

El método find nos permite seleccionar solo algunos documentos que cumplen una condición:

db.libros.find({_id : 1})

Rescatamos el documento que almacena en el campo '_id' el valor 1:

MongoDB find con parámetros

Si pasamos un valor para el campo '_id' que no existe luego el método find no regresa un documento.

Podemos rescatar todos los libros que tiene un precio igual a 50:

db.libros.find({precio : 50 })

Luego se recuperan dos documentos que cumplen la condición:

MongoDB find con parámetros

Podemos disponer más de un campo:

db.libros.find({precio : 50, cantidad : 20 })

Solo hay un documento que cumple estas dos condiciones:

MongoDB find con parámetros