是孩子的一个实体可在查询?

鉴于:

class Factory(db.Model):
    """ Parent-kind """
    name = db.StringProperty()

class Product(db.Model):
    """ Child kind, use Product(parent=factory) to make """
    @property
    def factory(self):
        return self.parent()
    serial = db.IntegerProperty()

假设500家工厂做了500产品共计250,000个产品。有没有一种方法以形成一个资源效率的查询,这将返回刚刚的500产品由一个特别工厂吗?祖先的方法是一个过滤器,所以使用例如产品。所有().祖先(factory_1)将需要一再呼吁的数据存储库。

有帮助吗?

解决方案

虽然祖先被描述为一个"过滤器",它实际上仅有更新的查询添加祖先的条件。你不请求发送的数据存储直到你迭代过查询,所以你有什么会工作的罚款。

一个小点但:500实体同样的父母可以伤害的可扩展性,因为写入化成员的实体集团。如果你只是想要跟踪的这家工厂做了一个产品,使用一个ReferenceProperty:

class Product(db.Model):
   factory = db.ReferenceProperty(Factory, collection_name="products")

然后你可以得到的所有产品的使用:

myFactory.products
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top