如何将 Array[Long] id 传递到 Aerospike Record UDF?
Posted
技术标签:
【中文标题】如何将 Array[Long] id 传递到 Aerospike Record UDF?【英文标题】:How to pass Array[Long] ids into Aerospike Record UDF? 【发布时间】:2016-09-02 07:10:00 【问题描述】:我将很多子记录作为Map存储在同一个顶部记录中,现在我需要根据传递的键删除一些子记录,我打算使用UDF来实现它。当我从 Java 调用时,日志显示长度为 0。为什么?以及如何纠正这个问题?谢谢!
在 Java 中 =>
val ids = Array(1,2,3)
Value.get(ids)
在 Lua UDF 中 =>
function remove_keys(rec, binName, rmkeys)
info("Value(%s) valType(%s)", tostring(rec), type(rec));
info("Value(%s) valType(%s)", tostring(binName), type(binName));
info("Value(%s) valType(%s)", tostring(rmkeys), type(rmkeys));
info("BinName(%s)", binName)
info("len(%s)", tostring(#rmkeys))
...
end
【问题讨论】:
【参考方案1】:试试:
String binName = "binName";
List<Value> rmKeys = new ArrayList<Value>();
rmKeys.add(Value.get("key1"));
client.execute(policy, key, packageName, "remove_keys", Value.get(binName), Value.get(rmKeys));
【讨论】:
以上是关于如何将 Array[Long] id 传递到 Aerospike Record UDF?的主要内容,如果未能解决你的问题,请参考以下文章
如何在MultipartEntity中传递long或int数据类型值?