Google app engine 了解GAE中的ListProperty后端行为
我试图理解您应该如何访问GAE db.ListProperty(db.Key)中的项 例子:Google app engine 了解GAE中的ListProperty后端行为,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,我试图理解您应该如何访问GAE db.ListProperty(db.Key)中的项 例子: 杂志db.Model实体具有包含10个文章实体的db.ListProperty(db.Key)。我想获取杂志对象并显示文章名称和日期。我是否对实际的article对象进行了10次查询?我是否执行批处理查询?如果有50篇文章呢?(批处理查询是否依赖于?您需要阅读,特别是关于一对多的部分。因此,您描述的内容如下: class Magazine(db.Model): ArticleList =
杂志
db.Model实体具有包含10个文章
实体的db.ListProperty(db.Key)。我想获取杂志对象并显示文章名称和日期。我是否对实际的article对象进行了10次查询?我是否执行批处理查询?如果有50篇文章呢?(批处理查询是否依赖于?您需要阅读,特别是关于一对多的部分。因此,您描述的内容如下:
class Magazine(db.Model):
ArticleList = db.ListProperty(db.Key)
class Article(db.Model):
ArticleName = db.StringProperty()
ArticleDate = db.DateProperty()
在本例中,获取列出的文章的最简单方法是使用Model.get()方法,该方法查找键列表
m = Magazine.get() #grab the first record
articles = Article.get(m.ArticleList) #get Articles using key list
for a in articles:
name = a.ArticleName
date = a.ArticleDate
#do something with this data
根据您计划如何处理数据,您最好将杂志引用属性添加到文章实体中。我已经阅读了文档,这篇文章是关于引用属性的,我想问一下ListProperty。而且,你没有抓住我问题的重点。我不是在尝试建立一对多关系的模型-这是一个简单的案例,只涉及两个查询。@Yarin这里的是一对多关系,所以最好按照推荐的方式进行。是的,但我的问题是了解ListProperty是如何工作的,而不是其他解决示例的方法。正确,除了它不是一个查询(在你的第二个代码片段中的第3行)-它只是一个数据存储获取,速度快得多。凯文-好的,谢谢,所以你要走批量获取路线-但是我问题的第二部分呢-我们可以通过这种方式获取多少记录没有限制吗?@Yarin因为这不是一个查询,但正如Nick所说的数据存储获取,在一次调用中获得的数量没有限制。@KevinP您需要在代码中添加一个检查,以确保None@Yarin关于Shay所说的“获取结果不受限制”也是如此。更实际地说,像这样的键列表结构可以很容易地对数据进行分页,而不会产生查询偏移量的开销。