Я использую запрос следующей структуры
MATCH path=((:Start)-[:NEXT*..100]->(n))
WHERE ALL(mnode IN nodes(path)
WHERE mnode.minimum <= $data[mnode.checkagainst])
где data
что-то вроде {checkparam1: 24}
. Что это делает для меня: имя параметра, по которому я хочу проверить минимум, находится в узле.
Все работает нормально, однако, когда я встраиваю apoc
такие вещи, как
MATCH path=((:Start)-[:NEXT*..100]->(n))
WHERE ALL(mnode IN nodes(path)
WHERE mnode.minimum <= apoc.date.toYear($data[mnode.checkagainst]))
это говорит мне
Failed to invoke function `apoc.date.toYears`: Caused by: java.lang.NullPointerException
Я подозреваю, что я не могу полагаться на «информацию из памяти запросов» внутри вызова apoc, потому что, когда я вручную заполняю значение mnode.checkagainst
, например
MATCH path=((:Start)-[:NEXT*..100]->(n))
WHERE ALL(mnode IN nodes(path)
WHERE mnode.minimum <= apoc.date.toYear($data['checkparam1']))
вызов апок работает. Не уверены, является ли это предполагаемым поведением?
Любые предложения по обходному пути?