不能在 mongoengine 过滤器查询中使用 "gte"

Can't use "gte" in mongoengine filter query

我有一个 MongoEngine 文档 class 学生..

class Student(Document):
    db_id = StringField()
    name = StringField()
    score = IntField()
    deleted = BooleanField(default=False, required=True)

我想查询

Student.objects.filter(score__gte=30)

但我收到类似 AttributeError: 'int' object has no attribute 'get'

的错误

有人可以帮我解决这个问题吗?谢谢!

以下(最小的)代码片段工作正常

from mongoengine import *
connect()

class Student(Document):
    name = StringField()
    score = IntField()

Student(name='Bob', score=35).save()

print(Student.objects(score__gte=30))
# output: [<Student: Student object>]

我对 运行 你的代码没有任何问题,也许从我的代码开始并在上面构建,直到你找出罪魁祸首。我还建议在测试之前删除现有的 mongo 集合。

事实上,根据错误发生的位置(我们没有堆栈跟踪所以我们无法判断),可能是加载现有 mongo 文档时失败(返回根据您的查询)进入 Student 构造函数