私は以下の例のイメージのようなノードのグループを持っています。ノードが「オフ」または「オン」(緑色)になっているかどうかを確認できるサイファークエリがありますか。それが「オン」の場合、「オン」ノードが接続するノードおよび「オン」に接続する元のノードを戻す。ノードが「オフ」の場合、ノードに接続するノードが返されます。この例では、label1とlabel2を返しますが、label3は返しません。Neo4jプロパティcypherを確認
0
A
答えて
1
あなたはunion
としてoptional match
とwith
の組み合わせを使用することができます。
// 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. FOREACH in cypher - neo4j
- 2. Neo4j c#toInteger cypher
- 3. Cypher for neo4j
- 4. Neo4j/Cypher concurrent MERGE
- 5. Neo4J Cypherクエリ - INコレクション?
- 6. Cypher Insert Neo4Jのクエリ
- 7. CypherのNeo4j 3.0.0 + SPATIAL
- 8. Neo4j cypher query slow performance
- 9. IF ... ELyp with Cypher Neo4J
- 10. Neo4j cypherクエリービルダーfor PHP
- 11. Java Neo4j Cypher Or Match
- 12. csvとcypherを使用してneo4jにプロパティを追加する
- 13. Neo4j/Cypher - 異なるプロパティ値でノードを返す
- 14. Neo4j cypher:ノードのcutofftime(datetime)プロパティを設定します。
- 15. neo4j cypherの正確なノードIDを取得する
- 16. neo4j cypherクエリはプロパティでは機能しません
- 17. ノードとプロパティの値がneo4jで知っている場合cypher
- 18. Neo4J Cypher:複数のプロパティの一致とリレーションシップの作成
- 19. のNeo4j CYPHER - トラブル関係
- 20. Neo4J/Cypher:パスパターンの可変長
- 21. DETACH DELETE Neo4j 2.3.x/Cypher
- 22. Neo4j Cypherの最適化
- 23. Neo4j Cypherブール条件とIN
- 24. Neo4j CypherのXORとツリー
- 25. Neo4jグラフ深度トラバーサルCypher
- 26. Neo4j - メモリ不足 - Cypher REST API
- 27. のNeo4j CYPHERは後でクエリ
- 28. Neo4j Cypherクエリパラメータのブラウザ構文
- 29. Neo4j 3.2 Cypher低性能
- 30. Neo4j CypherがCypherクエリーの日付を比較しています
'label3'がオンになっている別の緑色のノードに接続するとどうなりますか? – cybersam
それでも同じものが返されるはずです。この場合、label1から開始しています。label3から開始する場合は別のラベルになります。 –