У меня есть группа узлов, например, пример ниже. Есть ли запрос cypher, который может проверить, отключен ли узел «выключен» или «включен» (зеленый); если он «включен», он возвращает узел, к которому подключается узел «on», и исходный узел, который подключается к «on». Если узел «выключен», он просто возвращает узел, который подключается к нему. В этом примере он должен возвращать label1 и label2, но не label3.Neo4j Проверьте свойство cypher
0
A
ответ
1
Вы можете использовать комбинацию optional match
и with
как union
:
// Is the starting node
MATCH (S {name: 'label1'})
WITH S
// Get the nodes to which have access through a pattern of "ON"
OPTIONAL MATCH (S)-[:connect]->({on: true})-[:connect]->(onC)
WITH S, collect(distinct onC) as onConnect
// Get the nodes to which have access through a pattern of "OFF"
OPTIONAL MATCH (S)-[:connect]->({on: false})<-[:connect]-(offC)
WITH S, onConnect, collect(distinct offC) as offConnect
// Remove possible duplicates
UNWIND S + onConnect + offConnect as N
RETURN collect(distinct N) as result
0
Я предполагаю, что 'на' и 'выключено' являются состояния по параметру. Я собираюсь назвать это State в коде. Я также предполагаю, что вы хотите начать с определенного узла. Я не уверен, как вы получите этот узел, поэтому я предполагаю, что у вас есть ID, и он равен 1
MATCH (a) - [r: connect * ..] -> (b) где ID (n) = 1 b.State = 'on' return b
Смежные вопросы
- 1. Neo4j- binning cypher
- 2. Cypher Neo4j query
- 3. Neo4j Cypher, сравнивая даты в запросе Cypher
- 4. Neo4J Cypher тип данных преобразование
- 5. Необязательное свойство в Neo4j
- 6. Neo4j медленного Cypher запрос
- 7. Cypher Insert Querying Neo4J
- 8. Neo4j - сложный запрос Cypher
- 9. Подзапросы neo4j в Cypher
- 10. Neo4j Cypher: реклама края
- 11. Neo4j, Cypher: Graphity System
- 12. neo4j Cypher Grouping
- 13. Neo4J - Расширение Cypher
- 14. Java с Neo4j Cypher
- 15. Neo4J - пример Cypher
- 16. Синтаксис шаблона Neo4J Cypher
- 17. Neo4j Cypher Query Builder
- 18. Neo4j Cypher Неизвестная ошибка
- 19. Neo4j - понимание вопроса cypher
- 20. Оптимизировать Neo4j Cypher запрос
- 21. Neo4J Рекомендация Cypher рекомендации
- 22. Neo4j Cypher удалить запрос
- 23. Cypher for neo4j
- 24. Neo4j/Cypher concurrent MERGE
- 25. slow neo4j cypher query
- 26. neo4j (cypher) очень медленный
- 27. Neo4j Cypher Query Tuning
- 28. a Cypher с neo4j
- 29. Neo4j Cypher альтернативные пути
- 30. конкатенации в Cypher Neo4j
Что произойдет, если 'label3' подключается к другому зеленому узлу, который включен? – cybersam
Он все равно должен возвращать то же самое. В этом случае мы начинаем с label1, если мы начнем с label3, тогда это будет иначе. –