0

当尝试使用 mongoengine.queryset.visitor 中的 Q(nickname__contains="") 时,mongoengine 不会匹配非英文字符。

例如:

{

"nickname":"你好啊"

}

=> User.objects(Q(nickname__contains="你好")).first()

=> 无

但是对于英文字母,这将起作用:

{

"nickname":"Hello"

}

=> User.objects(Q(nickname__contains="Hel")).first()

=>(用户对象)

4

1 回答 1

1

我似乎没有这个问题,至少在最新版本的 mongoengine 中(用 0.16.3 测试)。

请注意,您还可以使用__raw__参数 in.objects发出原始 pymongo 查询

见下文:

class TestUser(Document):
    nickname = StringField()

TestUser(nickname="你好啊").save()

TestUser.objects(nickname__contains="你好").first()  # prints <TestUser: TestUser object>

TestUser.objects(__raw__={"nickname" : {"$regex" : ".*你好.*"}}).first() # prints <TestUser: TestUser object>
于 2019-08-08T15:25:25.370 回答