は私の関係をチェックし、次のNeo4jクエリは2つのノード間でカウントしている:データベースにneo4jでクエリが0、0を返すのはなぜですか?
match (a:T {id:1})-[y:FR]->(b:T {id:3}) match (a)-[x:F]->(b) return SIGN(COUNT(x)), SIGN(COUNT(y))
、しかし、ノード間の両方F
とFR
関係が存在し、それは0,0を返すのですか?
私のクエリで何が問題になっていますか?
は私の関係をチェックし、次のNeo4jクエリは2つのノード間でカウントしている:データベースにneo4jでクエリが0、0を返すのはなぜですか?
match (a:T {id:1})-[y:FR]->(b:T {id:3}) match (a)-[x:F]->(b) return SIGN(COUNT(x)), SIGN(COUNT(y))
、しかし、ノード間の両方F
とFR
関係が存在し、それは0,0を返すのですか?
私のクエリで何が問題になっていますか?
ノードが存在することが分かっているが、関係が存在するかどうかわかっている場合は、このような一致を実行すると、MATCHが失敗して行が生成されず、一致しなかった以前の試合
あなたのケースでは、各ノードで一致させ、希望する関係タイプのSIZE()を取得するか、そのような関係が存在するかどうかを返すだけでよい場合は、指定されたノードに対してEXISTSパターン:もちろん
match (a:T {id:1}), (b:T {id:3})
return EXISTS((a)-[:F]->(b)), EXISTS((a)-[:FR]->(b))
あなただけの1または0の代わりに真/偽のが必要な場合は、代わりにようにSIGN(SIZE((a)-[:F]->(b)))
に固執して。
私はEXISTSで解決しました。魅力のように働いた。ありがとうございました :) –
:Fと:FRは同じノードの間に存在します。あなたが持っているように見えます:Fいくつかのノードでは:FD他の人はFDですが両方の共用体はありません –