У меня есть скрипт, он работает нормально, но я должен его обновить.Скрипт теперь добавляет элементы без какой-либо проверки существующих.
function put_page(rec, id, val)
local l = rec['h']
if l==nil then l = list() rec['id'] = id end
list.append(l, val)
rec['h'] = l
if aerospike:exists(rec) then aerospike:update(rec) else aerospike:create(rec) end
end
Я пытаюсь перебрать список с помощью значения for в list.iterator (l) и добавить элемент, если значение ~ = val, но это не сработало.Идентификатор в функции - solr document_id, val - users_id.Я получаю пример объекта из aerospike: (('contextChannel', 'ContextChannel', None, bytearray (b'E \ xfb \ xa3 \ xd0 \ r \ xd6 \ r \ J @ f \ xa8 \ xf6> y! \ Xd18 =\ x9b ')), {' ttl ': 2592000,' gen ': 8}, {' id ':' ALKSD4EW ',' h ': []})
ОБНОВЛЕНИЕ Я пробую разные варианты, иэто работает:
function put_page(rec, id, val)
local l = rec['h']
local count = 0
if l==nil then l = list() rec['id'] = id end
for value in list.iterator(l) do
if (value ~= val) then count = count + 1 end
end
if (list.size(l) == count) then list.append(l, val) end
rec['h'] = l
if aerospike:exists(rec) then aerospike:update(rec) else aerospike:create(rec) end
end