如何将 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?的主要内容,如果未能解决你的问题,请参考以下文章

将数组传递给 PostgreSQL PL/pgSQL 函数

如何将PHP变量从一个函数传递到另一个函数?

如何在MultipartEntity中传递long或int数据类型值?

如何在火花中将列转换为数组[长]

如何在Selenium中使用sendKeys()方法传递一个arraylist

Laravel + Datatables,如何将id传递给控制器 ?