如何在GAE中的NDB中执行投影查询

时间:2012-07-02 09:23:20

标签: python google-app-engine

在1.7版本中,NDB获得了支持投影查询,documentation states这就是语法:

qry = Article.query(projection=[Article.author, Article.tags])

但是运行这会导致异常:

TypeError: __init__() got an unexpected keyword argument 'projection'

NDB中是否支持投影查询,如果是,如何使用它?

2 个答案:

答案 0 :(得分:4)

文档中有错误,正确的语法是:

qry = Article.query().get(projection=[Article.author, Article.tags])

...只要method of your choosing个参数,就用**q_options替换get

答案 1 :(得分:1)

您可以从测试用例中了解如何使用: http://codereview.appspot.com/6133044/patch/2001/1012

在这里:http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=181

但请记住 Article.query().get(projection=[Article.author, Article.tags]) 始终返回实体,而不是查询。在get旁边,您可以使用fetch(projection=[Article.author, Article.tags])fetch_async(projection=[Article.author, Article.tags])