【问题标题】:Mongoengine: create a QuerySet from a MongoDB cursorMongoengine:从 MongoDB 游标创建 QuerySet
【发布时间】:2019-09-24 23:05:11
【问题描述】:

我正在使用的应用程序的某些部分需要一个 mongoengine QuerySet。

我有一个 MongoDB 游标,其中包含我需要的信息,由聚合生成。

由于 mongoengine 文档指定 QuerySet 是 MongoDB 游标的包装器,有没有办法使用给定的游标创建 QuerySet?

注意:有一个明显的解决办法,再次查询数据库:

queryset = Model.objects.filter(_id__in=[r['_id'] for r in cursor])

但它相当丑陋。理想的解决方案是调用 QuerySet 的构造函数,因为它是游标的包装器。但是构造函数不接受游标作为参数。

【问题讨论】:

    标签: python mongodb pymongo mongoengine


    【解决方案1】:

    QuerySet 只是一个列表。因此,您可以将聚合得到的输出转换为如下所示的列表,并直接将该列表用作 QuerySet。

    queryset = list(cursor)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 2019-10-01
      • 2018-12-06
      • 2018-06-09
      相关资源
      最近更新 更多