Google app engine 如何使用应用引擎中的ndb查询密钥对中具有特定值的所有类型的实体?

Google app engine 如何使用应用引擎中的ndb查询密钥对中具有特定值的所有类型的实体?,google-app-engine,python-2.7,app-engine-ndb,Google App Engine,Python 2.7,App Engine Ndb,如果数据存储中有一堆垃圾邮件实体,每个实体都有一个由两对组成的密钥 ndb.Key(AClass, a_string, BClass, b_string) …如何查询关键字中有给定值的所有垃圾邮件实体 我试图避免做 hits = [ spam for spam in Spam.query() if spam.key.pairs()[0][1] == a_string ] …并避免添加新属性来存储实体中的字符串,因为它已经是键的一部分 获取所有Spam实体列表的最佳方法是什么?这些实体的'fo

如果数据存储中有一堆
垃圾邮件
实体,每个实体都有一个由两对组成的密钥

ndb.Key(AClass, a_string, BClass, b_string)
…如何查询关键字中有给定值的所有
垃圾邮件
实体

我试图避免做

hits = [ spam for spam in Spam.query() if spam.key.pairs()[0][1] == a_string ]
…并避免添加新属性来存储实体中的
字符串,因为它已经是键的一部分

获取所有
Spam
实体列表的最佳方法是什么?这些实体的
'foo'
作为其
键中四个参数中的第二个参数的值。

您的需求“如何查询其键中具有给定值的\u字符串的所有Spam实体?”是一个祖先查询-

在您的情况下,您将执行以下操作

result = AClass.query(ancestor=ndb.Key(AClass,a_string))
您的需求“如何查询密钥中包含给定值的\u字符串的所有垃圾邮件实体?”是一个祖先查询-

在您的情况下,您将执行以下操作

result = AClass.query(ancestor=ndb.Key(AClass,a_string))