首页 > 解决方案 > 如何使用 mongoengine 在布尔字段上使用 order_by

问题描述

我想在两个不同的字段上订购我的 mongoengine 调用的结果。

  1. 打开。这具有 True 或 False 状态。我想要这个,因为我想首先显示未解决的问题
  2. 开放日期。因为我想将最新的问题显示在顶部。

结合这应该创建一个列表,我可以在其中看到未解决的问题(按创建日期排序),而不是已经关闭的问题,也按创建日期排序。

我开始的代码是:

调用 API:

questions = Questions.questions_of_user

处理呼叫:

@queryset_manager
def questions_of_user(doc_cls, queryset):
    return queryset.filter(questioner=current_user.id).order_by('-openDate')

我的第一个建议是在 order_by 中添加“状态”(可能有或没有 + 或 - )就可以了。但到目前为止还没有运气。

比我试图只在空地上点菜,因为我认为我只是在将两者结合起来时犯了一个错误。所以我得到了这个:

@queryset_manager
def questions_of_user(doc_cls, queryset):
    return queryset.filter(questioner=current_user.id).order_by('-open')

然而,这并没有奏效。我希望有人可以帮助我。提前致谢

标签: pythonmongoengine

解决方案


order_by在查询集的方法中可以传递多个键。

queryset.filter(questioner=current_user.id).order_by('-open', '-openDate')

推荐阅读