En MongoDB utilizamos los métodos find y findOne para buscar datos en una colección.
Al igual que la instrucción SELECT se usa para encontrar datos en una tabla en una base de datos MySQL.
Buscar
Para seleccionar datos de una colección en MongoDB, podemos usar el método find_one (). El método find_one () devuelve la primera aparición en la selección.
import pymongo myclient = pymongo.MongoClient( "mongodb://localhost:12345/") mydb = myclient[ "bbdd"] mycol = mydb[ "Clientes"] x = mycol.find_one() print(x)
Encontrar todos
Para seleccionar datos de una tabla en MongoDB, también podemos usar el método find().
El método find() devuelve todas las apariciones en la selección.
El primer parámetro del método find() es un objeto de consulta. En este ejemplo, utilizamos un objeto de consulta vacío, que selecciona todos los documentos de la colección.
Ningún parámetro en el método find() le da el mismo resultado que SELECT * en MySQL.
Ejemplo
Devuelva todos los documentos de la colección de «clientes» e imprima cada documento:
import pymongo myclient = pymongo.MongoClient( "mongodb://localhost:12345/") mydb = myclient[ "bbdd"] mycol = mydb[ "Clientes"] for x in mycol.find(): print(x)
Devuelve solo algunos campos
El segundo parámetro del método find () es un objeto que describe qué campos incluir en el resultado. Este parámetro es opcional, y si se omite, todos los campos se incluirán en el resultado.
Ejemplo
Devuelve solo los nombres y direcciones, no los _ids:
import pymongo myclient = pymongo.MongoClient( "mongodb://localhost:12345/") mydb = myclient[ "bbdd"] mycol = mydb[ "Clientes"] for x in mycol.find({},{ "id": 0, "nombre": 1, "direccion": 1 }): print(x)
No se le permite especificar los valores 0 y 1 en el mismo objeto (excepto si uno de los campos es el campo _id). Si especifica un campo con el valor 0, todos los demás campos obtienen el valor 1 y viceversa:
Ejemplo
Este ejemplo excluirá «dirección» del resultado:
import pymongo myclient = pymongo.MongoClient( "mongodb://localhost:12345/") mydb = myclient[ "bbdd"] mycol = mydb[ "Clientes"] for x in mycol.find({},{ "direccion": 0 }): print(x)
Ejemplo
Recibirá un error si especifica valores 0 y 1 en el mismo objeto (excepto si uno de los campos es el campo _id):
import pymongo myclient = pymongo.MongoClient( "mongodb://localhost:12345/") mydb = myclient[ "bbdd"] mycol = mydb[ "Clientes"] for x in mycol.find({},{ "nombre": 1, "direccion": 0 }): print(x)