objectify v6-不再支持NOT和IN过滤器?替代方案?

时间:2018-12-31 04:35:33

标签: google-cloud-platform google-cloud-datastore objectify

objectify v6文档说:

  新的SDK不支持

NOT和IN过滤器。你会得到一个   如果您尝试执行时发生错误   ofy()。load()。type(Thing.class).filter(“ field!=”,value)或   filter(“字段IN”值)。

即使在objectify v5中,我们是否应该远离使用NOT或IN过滤器,看起来还是一样吗?

是否有关于为什么不再支持这些信息的信息?是否有其他方法可以实现类似类型的查询?具体来说,是IN查询。如果您说出需要查询所有用户ID的用户ID列表,则该功能非常有用。

1 个答案:

答案 0 :(得分:2)

无论如何,这些只是方便的过滤器,它们被转换为其他过滤器的组合。

  

!=(不等于)和IN(成员资格)操作由以下方式实现   使用“或”运算组合其他过滤器。首先,

https://cloud.google.com/appengine/docs/standard/python/ndb/queries#neq_and_in

<div class="main-content"></div>被实现为property != value

(property < value) OR (property > value)被实现为property IN [value1, value2, ...]

因此您可以将所有(property == value1) OR (property == value2) OR ...!=过滤器都转换为该过滤器