ndb通过查询StructuredProperty返回StructuredProperty子属性

时间:2013-05-01 22:27:26

标签: google-app-engine database-design python-2.7 app-engine-ndb

您好我对如何返回StructuredProperty属性(满口)感到困惑:

说我在ndb教程中有这个例子:

class Address(ndb.Model):
  type = ndb.StringProperty() # E.g., 'home', 'work'
  street = ndb.StringProperty()
  city = ndb.StringProperty()

class Contact(ndb.Model):
  name = ndb.StringProperty()
  addresses = ndb.StructuredProperty(Address, repeated=True)

guido = Contact(name='Guido',
                addresses=[Address(type='home',
                                   city='Amsterdam'),
                           Address(type='work',
                                   street='Spear St',
                                   city='SF')])

guido.put()

我希望能够查询阿姆斯特丹市并让它返回“home”类型。

所以,如果我做了查询:

Contact.query(Contact.address == Address(city='Amsterdam'))

我希望它能够回家。

1 个答案:

答案 0 :(得分:1)

默认情况下,appengine中的查询返回整个实体。如果我理解正确,你只需要返回结构化属性的字段,而不是整个实体。

如果是这种情况,您想要阅读投影查询。

https://developers.google.com/appengine/docs/python/ndb/queries#projection