Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何搜索结构化属性?谷歌应用引擎_Google App Engine_Data Structures_App Engine Ndb_Google Cloud Datastore - Fatal编程技术网

Google app engine 如何搜索结构化属性?谷歌应用引擎

Google app engine 如何搜索结构化属性?谷歌应用引擎,google-app-engine,data-structures,app-engine-ndb,google-cloud-datastore,Google App Engine,Data Structures,App Engine Ndb,Google Cloud Datastore,我有两个车型类别和城市: class category(ndb.Model): hidden = ndb.BooleanProperty() categoryName = ndb.StringProperty() class city(ndb.Model): categories = ndb.StructuredProperty(category,repeated = True) cityName = ndb.StringProperty()

我有两个车型类别和城市:

class category(ndb.Model):
      hidden = ndb.BooleanProperty()
      categoryName = ndb.StringProperty()

class city(ndb.Model):
      categories = ndb.StructuredProperty(category,repeated = True)
      cityName = ndb.StringProperty()
我有城市实体: 如何返回仅包含category.hidden=false的类别列表

编辑: 可以获取类别列表,然后在类别列表中循环并提取未隐藏的类别

例如,我有城市实体:

categories_unhidden_list = []
for category in city.categories :
    if not category.hidden :
        categories_unhidden_list.append(category)

但是我想从数据存储中获取类别列表

查询将只匹配所查询的内容。如果实体满足条件,它将返回该实体。如果您有一个重复的属性,并且查询与其中一个值匹配,那么它将返回实体中的整个列表,而不仅仅是匹配的列表。这就是为什么重复属性几乎总是键、简单值或简单键值对的原因


您可能希望查看A和B的数据结构,以便可以查询值为x的类别和键为y的父实体,而不是查询重复列表中键为x的y。

@voscausa谢谢,但这不会返回返回返回城市实体的类别列表,我编辑问题来澄清!是的,查询将返回整个实体,其中包含您要查询的…位置。从过滤的实体中,您可以提取类别列表以进行列表处理。嗯,好的,谢谢,我只是认为数据存储可以返回过滤的列表,而不必在我的代码中这样做,因为数据存储可以更有效地这样做。