2016-06-15 8 views
1

Ich versuche, die NOT relation Abfrage auszuführen, aber die Bedingung trifft einfach nicht zu. Was mache ich hier falsch?PHP Neo4j NOT Beziehung Abfrage funktioniert nicht

Die Abfrage Ich habe versucht:

MATCH (blog:Blog), (user:User{id:3})-[:FOLLOWS]->(otherUser:User) 
WHERE NOT ((otherUser)-[:OWNS]->(blog)) 
RETURN blog 

Abfrage zurückgeben soll - alle Blogs, die meine Freunde nicht besitzen. Meine ID ist 3. So sollten alle Blogs, die anderen Benutzern gehören, zurückgegeben werden.

Antwort

0

Sie überspannen ein Cross-Produkt zwischen allen Blogs und allen Freunden des Benutzers.

Aber die Bedingung wird nur für jedes Paar überprüft.

Sie wollen wahrscheinlich diese:

MATCH (user:User{id:3}) 
MATCH (blog:Blog) 
WHERE NOT ((user)-[:FOLLOWS]->()-[:OWNS]->(blog)) 
RETURN blog 

oder diese

MATCH (user:User{id:3})-[:FOLLOWS]->(otherUser:User) 
WITH collect(otherUser) as friends 
MATCH (otherUser)-[:OWNS]->(blog:Blog) 
WHERE NOT otherUser IN friends 
RETURN blog 
+0

Die erste Abfrage selbst mein Problem gelöst. Vielen Dank. –