Cypher - параметр запроса пропускает исключение - PullRequest
0 голосов
/ 22 марта 2020

У меня есть простой запрос с параметром $ login

MATCH (user: User {login: $login})
RETURN user

, когда в браузере Neo4j установлено значение null с

:param login => null

. Выполнение не вызывает исключение и не возвращает ничего, что ожидается. Однако, если я не предоставляю $ login параметр, генерируется следующее

Neo.ClientError.Statement.ParameterMissing
Expected parameter(s): login

Есть ли способ продолжить запрос, даже если параметр key не указан?

PS Я думаю, что та же проблема решена здесь и, согласно инициатору, выбрасывание WHERE предложения должно заставить его работать.

1 Ответ

1 голос
/ 23 марта 2020

Если параметр не указан, вы всегда будете сталкиваться с ошибкой при попытке использовать этот параметр.

Однако вы можете обойти это немного с небольшой косвенностью. Рассмотрите возможность передачи структуры карты в качестве параметра, который может содержать записи для всех ваших других параметров, необязательных или нет. Пока вы передаете параметр карты, ваш запрос должен выполняться, и вы можете использовать либо точечную запись, либо индекс / ключ для доступа к карте, чтобы использовать параметры из карты.

Например:

:params  {params:{name:'Keanu Reeves'}}

Теперь у нас есть параметр $ params в области видимости, который является картой. Использование может быть $params.login или $params['login'], оба из которых возвращают ноль для несуществующей записи на карте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...