如果数据存储区中有一堆Spam
个实体,每个实体都有一对由两对组成的密钥......
ndb.Key(AClass, a_string, BClass, b_string)
...如何查询其密钥中Spam
具有给定值的所有a_string
个实体?
我试图避免这样做......
hits = [ spam for spam in Spam.query() if spam.key.pairs()[0][1] == a_string ]
...并避免在实体中添加新属性以存储a_string
,当它已经是密钥的一部分时。
获取Spam
个'foo'
个实体的列表的最佳方法是Key
构造函数中四个args中第二个的值是什么?
答案 0 :(得分:4)
您的要求“您如何查询其密钥中a_string具有给定值的所有垃圾邮件实体?”是一个祖先查询 - https://developers.google.com/appengine/docs/python/ndb/queries#ancestor
在您的情况下,您将执行以下操作
result = AClass.query(ancestor=ndb.Key(AClass,a_string))