com.google.appengine.api.datastore.Query.FilterOperator
枚举没有NOT_IN
值。所有其他操作都是可能的(相等,不相等和所有不等式)。是否可以使用该行为创建FilterPredicate
(例如,"id", notIn(), new int[] { 3, 4, 7 }
,其中notIn()
将使查询返回除了在给定列表中找到id的那些值之外的所有值?如果没有,他们如何查询数据存储?例如,否定FilterPredicate
之类的东西。
答案 0 :(得分:1)
对于该类型的查询,没有(据我所知)服务器端支持。模拟客户端的最佳选择是合并三个查询的结果:一个用于低于集合最小值的元素,一个用于高于集合最大值的元素,一个用于[min..max]你在哪里在客户端代码中执行select r.*,
(case when filmname = 'Gladiator' and row_number() over (partition by filmname order by date) = 1
then 1 else 0
end) as IsWatchedFirst
from results r;
。
(已添加)您可以并行执行所有三个查询以节省时间。如果任何查询返回足够多的实体来破坏内存或超过时间限制,则会出现挑战。