1

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

4

1 回答 1

1

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

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

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

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

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

于 2019-10-17T17:35:00.413 回答