2016-09-01 10 views
0

Я использую следующий код, чтобы получить все подробности, основанные на пользовательских данных, проверив значение, как 1 или 0.СЛУЧАЙ Alongwith МАТЧ массива в Neo4j CQL

Вот ГДЕ flight.checked В проверке 'не является правильно подобран. Является ли использование CASE WHEN user.checked = 1 THEN [1,2] ELSE [1] END AS check 'правильно вместе с утверждением соответствия?

В результате я получаю данные пользователя вместе с нулевыми значениями в качестве деталей.

MATCH (user:users) 
WITH user, CASE WHEN user.checked = 1 THEN [1,2] ELSE [1] END AS check 
OPTIONAL MATCH (user)-[:HAS_BOOKED]-(flight)-[:OF_TYPE]-(type)-[:HAS_PRICE]-(price:Fares) 
WHERE flight.checked IN check 
RETURN user, type, price, flight, check 

ответ

0

Если путь не совпадает с OPTIONAL MATCH, вы получите нулевые значения для всего, кроме user. Вы уверены, что часть верна, если вы ожидаете найти пути?

Вы пробовали запустить жестко запрограммированный вариант запроса со значениями, известными сопрягать что-то, как

MATCH (user:users {userId: 1}) 
OPTIONAL MATCH (user)-[:HAS_BOOKED]-(flight)-[:OF_TYPE]-(type)-[:HAS_PRICE]-(price:Fares) 
WHERE flight.checked IN [1, 2] 
RETURN user, type, price, flight 

, чтобы увидеть, если он делает матч?

E.g. действительно ли тип рейса имеет цены? Кажется, что это немного.

+0

Код, приведенный выше, представляет собой примерный запрос, основанный на исходном запросе. Спасибо за ответ, я сделал чек в полученном результате. – Jeevika

Смежные вопросы