【发布时间】:2016-11-02 12:16:24
【问题描述】:
我有一个拥有超过 25 个属性的实体。在这 25 个属性中,有 15 个属性显示在前端表中。这些表将允许对每个属性进行排序(ASC 和 DESC)。
为了在后端处理这个问题,我正在检查订单类型并针对 ASC 和 DESC 订单的每个属性编写查询。为了处理 15 条记录排序,我有很多看起来相似的行代码。唯一不同的是订单类型。
代码如下:
@classmethod
def retrieve(cls, order, limit, offset):
if order == '-property_1':
results = cls.query(ancestor=parent).order(-cls.property_1).fetch(limit, offset=offset)
elif order == 'property_1':
results = cls.query(ancestor=parent).order(cls.property_1).fetch(limit, offset=offset)
.
.
.
.
elif order == '-property_15':
results = cls.query(ancestor=parent).order(-cls.property_15).fetch(limit, offset=offset)
elif order == 'property_15':
results = cls.query(ancestor=parent).order(cls.property_15).fetch(limit, offset=offset)
并为每个属性创建 2 个数据存储索引。
- kind: EntityName
ancestor: yes
properties:
- name: property_1
- kind: EntityName
ancestor: yes
properties:
- name: property_1
direction: desc
我的问题是有没有更好的方法来处理这种情况?
【问题讨论】:
标签: python google-app-engine optimization query-optimization google-cloud-datastore