可以在Google App Engine中查询NDB JsonProperty吗?如果没有,任何替代方案?

时间:2014-03-14 10:54:10

标签: python google-app-engine google-cloud-datastore app-engine-ndb

在NDB / GAE中的查询中是否有使用JsonProperties的方法?我似乎无法找到有关此信息的任何信息。

Person.query(Person.custom.eye_color == "blue").fetch()

模型看起来像这样:

class Person(ndb.Model):
    height = ndb.IntegerProperty(default=-1)
    #...
    #...
    custom = ndb.JsonProperty(indexed=False, compressed=False)

用例是这样的:我存储有关客户的数据,我们首先只需查询特定数据。现在,我们希望能够查询有关这些人的任何类型的注册数据。例如,一些可能放入系统的眼睛颜色,或者我们的JsonProperty中的任何其他自定义键/值对。

我知道expando类,但对我来说,能够查询jsonproperty并将所有自定义属性保持在同一个" name&#34 ;;定制。这意味着前端可以在自定义中循环遍历属性。如果使用expando类,则难以区分。

1 个答案:

答案 0 :(得分:2)

您考虑使用StructuredProperty,而不是使用JSONProperty。你保持相同的结构,只是以不同的方式存储,你可以通过一些限制来筛选StructureProperty的子组件,但这可能就足够了。

请参阅https://developers.google.com/appengine/docs/python/ndb/queries#filtering_structured_properties

用于查询StructuredProperties。