我有一个与此类似的场景,我正在尝试找到最佳/最常见的解决方案:
class Car(db.Model):
peopleCapacity = db.IntegerProperty()
class Wheel(db.Model):
car = db.ReferenceProperty(reference_class=Car, collection_name='wheels')
diameter = db.IntegerProperty()
我想要这类查询的结果:
smallWheelsForBigCars = db.GqlQuery(
'SELECT * FROM Wheel WHERE diameter < 10 AND car.peopleCapacity > 6'
)
# returns 0 entities as properties like 'car.peopleCapacity' are apparently not supported
我考虑过的一些(黑客)解决方案:
我的两个问题是:
为什么会这样车.人容量在查询中不工作?
有没有更好的办法?你知道吗
您的结论是正确的,数据存储没有子属性查询功能(您可以使用StructureProperty实现这一点,但不能使用您正在寻找的方式)。
你应该去规范化你的模型,把所有的东西都放在大实体上,更新会很痛苦,但检索结果会更容易更快。你知道吗
相关问题 更多 >
编程相关推荐