我正在学习 MongoAlchemy,这是 MongoDB 的 Python 驱动程序之上的一层。假设有一个 Python 类,从 MongoDB 对象映射,如下所示:
from mongoalchemy.document import Document
from mongoalchemy.fields import *
class Person(Document):
name = StringField()
我像这样查询数据库:
for person in query.filter(Person.name == 'Geronimo'):
print person
它工作正常,但现在我想查询数据库中不区分大小写的名称(“geronimo”和“Geronimo”),或者查找其中包含两个 o 的所有名称。 query.filter(Person.name[1:] == 'eronimo')
等不起作用,因为 Person.name 不是字符串,而是 QueryField 对象。
如何在 MongoAlchemy 中执行如此复杂的查询?
最佳答案
要查找任何共现,您可以在查询中使用运算符。像这样:
datosquery = datos.query.filter({datos.schema_name: {"$regex": texto}})
$regex
运算符使用正则表达式,使我们能够在文本字段中进行更复杂的搜索。
这是 mongo 查询运算符的链接。
https://charlascylon.com/2013-07-10-tutorial-mongodb-operaciones-de-consulta-avanzadas
关于python - MongoAlchemy 中的复杂字符串查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665703/