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":

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:

  1. import pymongo: Importa el módulo pymongo, que proporciona herramientas para trabajar con MongoDB desde Python.
  2. 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.
  3. 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.
  4. 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.
  5. myquery = { "direccion": "C/Veracruz 14" }: Crea un diccionario myquery que 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".
  6. mydoc = mycol.find(myquery): Utiliza el método find() para realizar la consulta en la colección "Clientes" utilizando el criterio definido en myquery. El resultado se almacena en la variable mydoc.
  7. for x in mydoc: print(x): Utiliza un bucle for para recorrer los documentos que cumplen con el criterio de búsqueda y los imprime en la consola. Cada x representa 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:

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":

import pymongo

myclient = pymongo.MongoClient( "mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]

myquery = { "direccion": { "$regex","^S"} }

mydoc = mycol.find(myquery)

for x in mydoc:
print(x)