过滤气钉 LIST
Filtering aerospike LLIST
任何人都可以告诉我如何使用 PHP.
过滤 Aerospike LLIST 容器而不是密钥 return 所有结果
在我的示例中,bin 'notes' 包含许多行的键、标题、描述和类别。我可以使用以下代码检索所有行,但是
我需要对类别进行筛选,并仅获取同一类别中的结果。如果需要 udf,请协助向我展示 udf 代码以及如何应用过滤器来获取结果。
$db = new Aerospike($config, false);<br/>
$key = $db->initKey('mynamespace', 'myset', $userid);<br/>
$list = new \Aerospike\LDT\LList($db, $key, 'notes');<br/>
$status = $list->scan($results);
LList.scan方法有一个可选的模块名,函数名参数对,允许你调用一个Lua函数来过滤每个元素。
有一个 example PHP script provided with the client repo, which calls an example Lua 模块:
function keyfilters.even_filter(element)
local remainder = -1
if type(element) == "number" then
remainder = element % 2
elseif (getmetatable(element) == getmetatable(map())) and element['key'] then
remainder = element['key'] % 2
end
if remainder == 0 then
return element
else
return nil
end
end
由
调用
$rental_history->scan($elements, 'keyfilters', 'even_filter');
按如下方式修改 UDF,成功了。
local category_filters = {}
function category_filters.filterBy(element,val)
if element['category'] == val[1] then
return element
else
return nil
end
end
return category_filters
调用者
$status = $list->scan($results, 'category_filters', 'filterBy', array($category));
任何人都可以告诉我如何使用 PHP.
过滤 Aerospike LLIST 容器而不是密钥 return 所有结果在我的示例中,bin 'notes' 包含许多行的键、标题、描述和类别。我可以使用以下代码检索所有行,但是 我需要对类别进行筛选,并仅获取同一类别中的结果。如果需要 udf,请协助向我展示 udf 代码以及如何应用过滤器来获取结果。
$db = new Aerospike($config, false);<br/>
$key = $db->initKey('mynamespace', 'myset', $userid);<br/>
$list = new \Aerospike\LDT\LList($db, $key, 'notes');<br/>
$status = $list->scan($results);
LList.scan方法有一个可选的模块名,函数名参数对,允许你调用一个Lua函数来过滤每个元素。
有一个 example PHP script provided with the client repo, which calls an example Lua 模块:
function keyfilters.even_filter(element)
local remainder = -1
if type(element) == "number" then
remainder = element % 2
elseif (getmetatable(element) == getmetatable(map())) and element['key'] then
remainder = element['key'] % 2
end
if remainder == 0 then
return element
else
return nil
end
end
由
调用$rental_history->scan($elements, 'keyfilters', 'even_filter');
按如下方式修改 UDF,成功了。
local category_filters = {}
function category_filters.filterBy(element,val)
if element['category'] == val[1] then
return element
else
return nil
end
end
return category_filters
调用者
$status = $list->scan($results, 'category_filters', 'filterBy', array($category));