google-app-engine - 了解 GAE 中的 ListProperty 后端行为

标签 google-app-engine google-cloud-datastore

我试图了解您应该如何访问 GAE db.ListProperty(db.Key) 中的项目。

示例:

Magazine db.Model 实体有一个 db.ListProperty(db.Key),其中包含 10 个 Article 实体。我想获取杂志对象并显示文章名称和日期。我是否对实际的文章对象进行了 10 次查询?我做批量查询吗?如果有 50 篇文章呢? (批量查询不依赖 IN operator, which is limited to 30 or fewer elements 吗?)

最佳答案

所以你在描述这样的事情:

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

根据您计划如何处理数据,您最好改为将 Magazine 引用属性添加到您的 Article 实体。

关于google-app-engine - 了解 GAE 中的 ListProperty 后端行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216601/

相关文章:

java - App Engine 无法下载超过 33MB 的文件

python - 应用引擎 : cached reference property?

java - Objectify 是否支持 Joda-Time Interval 类?

google-app-engine - 使用数据存储 (NDB)、搜索 API 或两者来查看数据?

java - Appengine 实体设计建议

google-app-engine - 谷歌应用引擎中的事务隔离

python - 让 Beaker 与 GAE 一起工作

windows - 使用 OAuth 从 Windows 应用程序访问 Google App Engine 应用程序

java - 在GAE java中使用inputstream上传文件

mysql - 对 2000 万条以上记录的云数据库的建议?