Aerospike Java客户端6.x.x+中PredExp非等于的Filter Expression替代方案
Aerospike Java客户端Filter Expression实现非等于(notEquals)替代方案
自Aerospike Java客户端6.x.x版本开始,PredExp已被官方弃用,推荐使用Filter Expression来实现数据过滤逻辑。针对你提供的PredExp非等于逻辑,对应的Filter Expression等效写法如下:
原PredExp代码逻辑
原代码通过stringEqual()判断字符串Bin等于指定值,再用not()取反,实现非等于过滤:
predicate = Arrays.asList( PredExp.stringBin(key), PredExp.stringValue(String.valueOf(value)), PredExp.stringEqual(), PredExp.not() );
等效Filter Expression写法
使用Filter.not()包裹Filter.equal()来实现非等于逻辑:
Filter filter = Filter.not(Filter.equal(key, String.valueOf(value)));
说明
Filter.equal()用于判断字符串Bin与指定值相等的情况- 外层嵌套
Filter.not()对相等结果取反,就得到了非等于的过滤效果 - 这种写法完全符合Aerospike 6.x+版本的Filter Expression规范,替代了PredExp的废弃逻辑
内容的提问来源于stack exchange,提问作者Avanish Ghosh
相关产品推荐
相关产品推荐

