【发布时间】:2014-03-04 15:49:17
【问题描述】:
我正在尝试对一系列有效日期进行查询
q = Licence.query(Licence.valid_from <= today,
Licence.valid_to >= today,
ancestor = customer.key
).fetch(keys_only=True)
我知道 Datastore 不支持对两个属性的不等式查询。 所以我这样做:
kl = Licence.query(Licence.valid_from <= today,
ancestor = customer.key
).fetch(keys_only=True)
licences = ndb.get_multi(kl)
for item in licences:
if item.valid_to < today:
licence.remove(item)
但我不喜欢,因为我认为我使用了太多 RAM 从数据存储区检索更多我最终需要的实体(或密钥)。
任何机构都知道执行此类查询的更好方法吗?
在.get()之前使用.filter()就够了吗?
谢谢
【问题讨论】:
标签: python performance google-cloud-datastore app-engine-ndb