数据存储复合过滤器 OR 查询
温馨提示:
本文最后更新于 2024年04月12日,已超过 48 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
我一直在尝试修改使用以下过滤器的现有查询:
CompositeFilter.and(
eq("firstName", firstName),
ge("lastName" lastName),
lt("lastName", lastName.concat("\uf8ff")))
查询运行良好,但对于数据库中的某些用户,我们没有字段firstName和lastName,我们还有其他字段基本上包含相同的信息(标签和姓氏);
我想提出这个方法来搜索丢失数据的用户:
CompositeFilter.or(
CompositeFilter.and(
eq("firstName", firstName),
ge("lastName", lastName),
lt("lastName", lastName.concat("\uf8ff"))),
CompositeFilter.and(
eq("tag", firstName),
ge("surname", lastName),
lt("surname", lastName.concat("\uf8ff")))
)
现在我很惊讶,因为查询没有从数据存储中检索任何实体。是否支持这种 CompositeFilters?
现在,当我尝试在 GCP 上查询时使用 GQL 时,我看到以下查询运行搜索结果:
SELECT * FROM `db` WHERE (tag="Carlos" AND surname>="Palma" AND surname<"Palma" )
但是,当我对另一个未检索结果的查询执行“或”操作时,我没有得到任何结果:
SELECT * FROM `db` WHERE (tag="Carlos" AND surname>="Palma" AND surname<"Palma" ) OR
(firstName="Carlos" AND lastName>="Palma" AND lastName<"Palma" )
对我来说,这很奇怪,为什么第一个查询得到了结果,而在执行时却没有得到结果? OR 不是应该添加结果吗?
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2144
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(192) 评论(0)