PredExp vs Expression - Aerospike 客户端(整数列表)

PredExp vs Expression - Aerospike Client (list of integers)

提问人:Avanish Ghosh 提问时间:11/16/2023 更新时间:11/17/2023 访问量:55

问:

将 PredExp 用于 aerospike 客户端的以下代码的表达式替代品是什么

predExps = Arrays.asList(PredExp.integerVar("v"), PredExp.integerValue((Long) fieldValue),       PredExp.integerEqual(), PredExp.listBin(fieldName), PredExp.listIterateOr("v"));

无法弄清楚如何在此处复制列表行为。

尝试使用 Exp.intOr 复制相同的行为,但这不起作用

Java 表达式 Aerospike

评论

0赞 kporter 11/17/2023
Exp.intOr 是按位或运算。

答:

2赞 kporter 11/17/2023 #1

您的 predexp 正在检查列表中的任何值是否与特定值匹配:

predExps = Arrays.asList(
         PredExp.integerVar("v"),
         PredExp.integerValue((Long) fieldValue),
         PredExp.integerEqual(),
         PredExp.listBin(fieldName),
         PredExp.listIterateOr("v")
);

表达式中的等效项是使用 list_get_by_value() 表达式。应该类似于 Java 中的以下内容 - 我目前无法测试:

Exp.build(
    ListExp.getByValue(
        ListReturnType.EXISTS, Exp.val(fieldValue), Exp.listBin(fieldName)))

评论

0赞 Avanish Ghosh 11/21/2023
嗨,应该是ListReturnType.EXISTS还是ListReturnType.VALUE?此外,在字符串列表中查询字符串值需要进行哪些更改?