我正在尝试获取一长串实体,而这些实体都是指一些不同的相关实体。它在评论中得到了解释,但基本上很多“项目”都提到了一些“公司”。我不想对key
(IE unique_key
)中的每个key.get()
进行多次查询,因此我认为以下内容可行,但它会返回一个空列表。祈祷告诉我,我做错了什么?或者有更好的方法来实现引用一些项目的许多项目的这种关系,同时最小化对db的调用(我是AppEngine数据存储区的新手)。
注意,这是在Python中,使用app引擎提供的ndb库。
# "items" is a list of entities that have a property "parenty_company"
# parent_company is a string of the Company key
# I get a unique list of all Key strings and convert them to Keys
# I then query for where the Company Key is in my unique list
unique_keys = list(set([ndb.Key(Company, prop.parent_company) for prop in items]))
companies = Company.query(Company.key.IN(unique_keys)).fetch()
答案 0 :(得分:1)
你绝对应该使用ndb.get_multi(unique_keys)
。它将在一个批处理中异步获取所有密钥。