在 Aerospike UDF 中预期表格但得到了 userdata

我编写了 Aerospike UDF,用于获取和更新。但我收到了异常 "bad argument #1 to 'pairs' (table expected, got userdata)"

    function update_record( record, list_added, list_removed, bin_name)
      local store_list = record[bin_name]
      -- 从数据库记录中获取列表。如果不存在,则创建一个
      if store_list == nil then
        store_list = map()
      end

       local final_map={}
         if store_list then
          for k, v in pairs(store_list) do
            final_map[k] = 1
            i = i+1
          end
        end
  end

我的问题是:

  1. Aerospike 是否返回 **map(table)**,如果是,则我们是否可以在 Lua 代码中将返回值用作 map(table)

  2. 如果不是,则获取和存储 map 的最佳方法是什么

我想在 Aerospike bin 中存储 map[Integer,Integer]。

点赞
用户2858170
用户2858170

一个很好的参考文献是 Aerospike 文档: http://www.aerospike.com/docs/udf/api/map.html

我之前从未听说过 Aerospike,但它看起来 map 提供了它自己的迭代器 map.pairs

所以,只需像这样做:

for k,v in map.pairs(store_list) do end
2016-03-16 11:22:29