Consulta Python MongoDB
Filtrar el resultado
Al buscar documentos en una colección, puede filtrar el resultado utilizando un objeto de consulta.
El primer argumento del find()
método es un objeto de consulta y se utiliza para limitar la búsqueda.
Ejemplo
Encuentre documento(s) con la dirección "Park Lane 38":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Park Lane 38" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Consulta avanzada
Para realizar consultas avanzadas puede utilizar modificadores como valores en el objeto de consulta.
Por ejemplo, para encontrar los documentos donde el campo "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:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Filtrar con expresiones regulares
También puede usar expresiones regulares como modificador.
Las expresiones regulares solo se pueden usar para consultar cadenas .
Para encontrar solo los documentos donde el campo "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:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)