搜索日期范围 mongodb:递归异常
Search date range mongodb: Recursion Exception
我正在编写一个 api 来与 mongodb 交互,但是当尝试根据日期进行过滤时,我收到以下错误:
File "/shares/dev/mongo_api/lib/python3.8/site-packages/fastapi/encoders.py", line 43, in jsonable_encoder
if isinstance(obj, BaseModel):
File "/usr/lib/python3.8/abc.py", line 98, in __instancecheck__
return _abc_instancecheck(cls, instance)
RecursionError: maximum recursion depth exceeded in comparison
这是我目前使用的代码:
@app.post('/search/')
def search_post(vendor: str = '', program: str = '', severity: str = '', _from: str = "", to: str = ""):
# TODO: Add search options: Program/Vender/(Date-Range)
data = {}
if vendor:
data['vendor'] = vendor
if program:
data['program'] = program
if severity:
data['severity'] = severity
if _from:
_from = utils.convert_date_string(_from)
if to:
to = utils.convert_date_string(to)
my_data = MyData.objects().filter((Q(mod_date__gte=_from) & Q(mod_date__lte=to)))
return my_data
我正在使用 mongoengine 连接数据库。
原来我是个白痴,但这里是遇到同样问题的人的答案。
my_data = MyData.objects().filter((Q(mod_date__gte=_from) & Q(mod_date__lte=to)))
在将其传回 fastapi 之前需要将其转换为字典列表
return list(my_data)
已解决问题
我正在编写一个 api 来与 mongodb 交互,但是当尝试根据日期进行过滤时,我收到以下错误:
File "/shares/dev/mongo_api/lib/python3.8/site-packages/fastapi/encoders.py", line 43, in jsonable_encoder
if isinstance(obj, BaseModel):
File "/usr/lib/python3.8/abc.py", line 98, in __instancecheck__
return _abc_instancecheck(cls, instance)
RecursionError: maximum recursion depth exceeded in comparison
这是我目前使用的代码:
@app.post('/search/')
def search_post(vendor: str = '', program: str = '', severity: str = '', _from: str = "", to: str = ""):
# TODO: Add search options: Program/Vender/(Date-Range)
data = {}
if vendor:
data['vendor'] = vendor
if program:
data['program'] = program
if severity:
data['severity'] = severity
if _from:
_from = utils.convert_date_string(_from)
if to:
to = utils.convert_date_string(to)
my_data = MyData.objects().filter((Q(mod_date__gte=_from) & Q(mod_date__lte=to)))
return my_data
我正在使用 mongoengine 连接数据库。
原来我是个白痴,但这里是遇到同样问题的人的答案。
my_data = MyData.objects().filter((Q(mod_date__gte=_from) & Q(mod_date__lte=to)))
在将其传回 fastapi 之前需要将其转换为字典列表
return list(my_data)
已解决问题