Consultas o Queries con Python MONGODB
En MongoDB, las consultas se realizan utilizando el método
find()
en una colección. El método
find()
permite buscar documentos en la base de datos que cumplan con ciertos criterios de búsqueda.
Ejemplo de QUERY con Python y MONGODB
Encuentre el (los) documento(s) con la dirección "Park Lane 38":
Ejemplo
import pymongo
myclient = pymongo.MongoClient( "mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]
myquery = { "direccion": "C/Veracruz 14"}
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
El código que proporcionaste está utilizando la biblioteca
pymongo
para conectarse a una base de datos MongoDB, consultar documentos y luego imprimir los resultados que cumplen con el criterio de búsqueda.
Aquí está una explicación paso a paso del código:
- import pymongo : Importa el módulo pymongo, que proporciona herramientas para trabajar con MongoDB desde Python.
-
myclient = pymongo.MongoClient("mongodb://localhost:12345/"): Crea un cliente MongoDB con la dirección del servidor MongoDB al que deseas conectarte. En este caso, el servidor se encuentra en "localhost" (tu propio equipo) y está escuchando en el puerto 12345. -
mydb = myclient["bbdd"]: Selecciona la base de datos "bbdd" en el cliente MongoDB. Si no existe, se creará una nueva base de datos con ese nombre. -
mycol = mydb["Clientes"]: Selecciona la colección "Clientes" en la base de datos "bbdd". Si no existe, se creará una nueva colección con ese nombre. -
myquery = { "direccion": "C/Veracruz 14" }: Crea un diccionariomyqueryque contiene el criterio de búsqueda. En este caso, estamos buscando documentos en la colección "Clientes" donde el campo "direccion" tenga el valor "C/Veracruz 14". -
mydoc = mycol.find(myquery): Utiliza el métodofind()para realizar la consulta en la colección "Clientes" utilizando el criterio definido enmyquery. El resultado se almacena en la variablemydoc. -
for x in mydoc: print(x): Utiliza unbucle forpara recorrer los documentos que cumplen con el criterio de búsqueda y los imprime en la consola. Cadaxrepresenta un documento que coincide con la consulta y es un diccionario que contiene los campos y valores del documento.
En resumen, el código se conecta a una base de datos MongoDB, consulta la colección "Clientes" para encontrar documentos que tengan "C/Veracruz 14" en el campo "direccion", y luego imprime esos documentos en la consola.
Consulta avanzada
Para realizar consultas avanzadas, puede utilizar modificadores como valores en el objeto de consulta. P.ej. para encontrar los documentos donde el campo de "dirección" comienza con la letra
"S"
o superior (alfabéticamente), use el modificador mayor que:
{"$ gt": "S"}
:
Ejemplo
Encuentre documentos donde la dirección comience con la letra
"S"
o superior:
Ejemplo
import pymongo
myclient = pymongo.MongoClient( "mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]
myquery = {"direccion": {"$gt","S"} }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
para x en mydoc:
print(x)
Filtrar Con Expresiones Regulares También puedes usar expresiones regulares como modificador. Las expresiones regulares solo se pueden utilizar para consultar cadenas. Para buscar solo los documentos donde el campo de "dirección" comienza con la letra
"S"
, use la expresión regular
{"$ regex": "^ S"}
:
Ejemplo
Encuentre documentos donde la dirección comience con la letra
"S"
:
Ejemplo
import pymongo
myclient = pymongo.MongoClient( "mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]
myquery = { "direccion": "C/Veracruz 14"}
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Practica Consultas o Queries con Python MONGODB en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Practica mongodb query en el editor interactivo
Practica mongodb query en el editor interactivo.
Ejemplo
import pymongo
myclient = pymongo.MongoClient( "mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]
myquery = { "direccion": "C/Veracruz 14"}
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.