AppEngine - 按关键不平等搜索 ndb

AppEngine - Search ndb by key inequality

如何根据键不等式搜索 ndb 模型?

例如,对于字符串,可以使用:

 def add_inequality_filter(query, attr, given)
     end = given + u'\ufffd'
     return query.filter(attr >= given, attr < end)

 add_inequality_filter(query, "key", "abc.")

如果 key 是一个普通字符串 属性 这会起作用,但是 key 是一个 ModelKey.

key(或 _key)与字符串进行比较会触发 BadValueError。 似乎没有记录的方法来创建 ModelKey(或等效)进行比较。

当我尝试过滤 __key__ >db 方式)时,我得到 Cannot filter a non-Node argument.

db to ndb 文档肯定表明这应该是可能的。

为了回答我自己的问题,这里的 givenend 需要 ndb.Key 个实例,而我只尝试了 ModelKeyKeyProperty 和字符串。