2016-05-25 31 views
0

2つのノードAとBがあり、それらの間に関係があります。 AとBはステータスプロパティ(0または1)を持っていますNeo4J一致ノード特定の値を持つすべてのノード

私はステータス= 0のすべてのノードAを望み、B.status = 1を持つノードAだけを求めます(しかし、b.statusは1でなければなりません。それら)私は、ノードAを望んでいない0と等しく

...

おかげ

答えて

1

を私はこのクエリ

MATCH (a:A)-[r]-(b:B) WHERE a.status = 0 AND ALL(x IN b.status WHERE x = 1) 
RETURN a.status, b.status 

を作るが、私はb.status = 0を持つノードを持っています更新あなたはBノードを収集する必要があるコメントの後

あなただけの使用AND、ここでALL述語を必要としないALL

MATCH (a:A)-[r]-(b:B) 
WHERE a.status = 0 
WITH a, collect(b) as bNodes 
WHERE ALL(x IN bNodes WHERE x.status = 1) 
UNWIND bNodes as b 
RETURN a.status, b.status 

でチェックを行うために:

MATCH (a:A)-[r]-(b:B) 
WHERE a.status = 0 
AND b.status = 1 
RETURN a.status, b.status 
+0

これは私がしたいことではありません。私は排他的にb.status = 1(すべてのb.statusが1でなければならないすべてのノードA)を取得したい。 – Amos

+0

オクラホマ、同じAに複数のBノードが接続されていますので、私の回答を修正します –

+0

答えが更新されました。希望でない場合は、質問を編集してさらに説明してください。 –

関連する問題