Pitón MongoDB Buscar
En MongoDB usamos los métodos find y findOne para encontrar datos en una colección.
Al igual que la declaración SELECT se usa para buscar datos en una tabla en una base de datos MySQL.
Encuentra uno
Para seleccionar datos de una colección en MongoDB, podemos usar el
find_one()
método.
El find_one()
método devuelve la primera aparición en la selección.
Ejemplo
Encuentre el primer documento en la colección de clientes:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Encuentra todos
Para seleccionar datos de una tabla en MongoDB, también podemos usar el
find()
método.
El find()
método devuelve todas las ocurrencias en la selección.
El primer parámetro del find()
método es un objeto de consulta. En este ejemplo, usamos 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 "clientes" e imprima cada documento:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Devolver solo algunos campos
El segundo parámetro del find()
método 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
Devuelva solo los nombres y direcciones, no los _ids:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
No puede especificar 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:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Ejemplo
Obtiene un error si especifica los 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:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
print(x)