MongoAlchemy中复杂的字符串查询

时间:2012-05-19 13:46:24

标签: python mongodb pymongo mongoalchemy

我正在学习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中执行此类复杂查询?

1 个答案:

答案 0 :(得分:1)

要查找任何同现,可以在查询中使用运算符。像这样:

datosquery = datos.query.filter({datos.schema_name: {"$regex": texto}})

$regex运算符使用正则表达式,使我们可以在文本字段中进行更复杂的搜索。

这是用于mongo查询的运算符的链接。

https://charlascylon.com/2013-07-10-tutorial-mongodb-operaciones-de-consulta-avanzadas