1

我有兩個車型類別和城市:如何搜索結構化屬性?谷歌應用程序引擎

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

class city(ndb.Model): 
     categories = ndb.StructuredProperty(category,repeated = True) 
     cityName = ndb.StringProperty() 

我有cityEntity: 如何返回包含剛剛category.hidden =假類別列表?

編輯: 有可能通過分類列表來獲取類別列表,然後循環和只提取其中不隱藏

例如類別我有城市實體:

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

但我會喜歡從數據存儲中獲取categories_unhidden_​​list!

+0

https://cloud.google.com/appengine/docs/python/ndb/queries#filtering_structured_properties – voscausa 2014-11-24 13:52:42

+0

@voscausa謝謝,但那不返回類別列表,返回城市實體,我編輯問題澄清 ! – david 2014-11-24 14:04:25

+0

是的,查詢返回包含...的整個實體(您查詢的地方)。從過濾的實體中,您可以提取列表處理的類別列表。 – voscausa 2014-11-24 14:29:13

回答

0

查詢將僅匹配查詢的內容。如果實體符合條件,它將返回實體。如果你有一個重複的屬性,並且查詢與其中一個值相匹配,它將返回實體中的整個列表,而不僅僅是匹配的那個。這就是爲什麼重複屬性應該幾乎總是一個關鍵字,一個簡單的值或一個簡單的鍵值對。

你可能想看看A)projection queries和B)結構化數據,以便您可以查詢具有的x值和key_y父實體類,而不是查詢用於Y的,他們有key_x他們重複列表。