python - 是否可以在 Google App Engine 中查询 NDB JsonProperty?如果没有,还有其他选择吗?

标签 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 并将所有自定义属性保留在同一“名称”上似乎要容易得多;风俗。这意味着前端可以只循环自定义的属性。如果使用expando类,就很难区分。

最佳答案

您是否考虑过使用 StructuredProperty,而不是使用 JSONProperty。您维护相同的结构,只是存储方式不同,并且您可以按 StructureProperty 的子组件进行过滤,但有一些限制,但这可能就足够了。

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

用于查询StructuredProperties。

关于python - 是否可以在 Google App Engine 中查询 NDB JsonProperty?如果没有,还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403023/

相关文章:

python - 具有计算颜色的 Hexbin 图

python - 如何删除列表中彼此相邻的重复值之一?

python - : os. listdir ('.' ) 与 os.listdir() 有什么区别

google-app-engine - 用户可以上传到谷歌云存储吗?

python - 排序实体和过滤 ListProperty 而不会导致索引 explode

python - 如何将多个语句放在一行中?

android - 如何解决 Firebase API 初始化失败(Android + Firebase)

google-app-engine - 使用 Let's Encrypt "could not be inserted"的 Google App Engine SSL

google-app-engine - 数据流作业内的默认数据存储实例

google-app-engine - 如何从客户端通过谷歌数据存储中的引用集合定义获取数据存储实体的长度(或计数)