0

ではなく、どのようにor調整しますandか?以下の例:

START user = node({id})
MATCH
(user)-[:follows]->(followed),
(follower)-[:follows]->(user)
RETURN user, followed, follower

私が取り戻したいのはuser、誰かが彼女をフォローしているかどうか、または彼女が誰かをフォローしているかどうかに関係なく、. ある場合はすべてfollowers。もしあればすべてfollowed

上記のクエリは、and. if が誰もuserフォローしていない場合、または誰もユーザーをフォローしていない場合は、何も返されません。


これは私が試した他のものですが、構文エラーが発生しています:

start a = node(40663) 
with a, a as b 
match (b)-[:follows]->(c) 
with b, a as d 
(e)-[:follows]->(d) 
return a, c, e;

エラー:

SyntaxException: string matching regex `$' expected but `(' found

Think we should have better error message here? Help us by sending this query to cypher@neo4j.org.

Thank you, the Neo4j Team.

"start a = node(40663) with a, a as b match (b)-[:follows]->(c) with b, a as d (e)-[:follows]->(d) return a, c, e"
                                                                               ^

このエラーに関係なく、縮小されたクエリ ( が 1 つしかないwith) は結果を返さないため、それを行う方法でもないようです。

4

3 に答える 3

0

OK、次のようなものを使用してこれを解決できます。

start a = node(40663)
match (a)-[?:follows]->(b), (c)-[?:follows]->(a) 
return a, b, c;

しかし、もっと良い方法があれば、遠慮なく教えてください。

于 2013-10-05T15:52:43.777 に答える
0

match (c)<-[?:follows]-(a)-[?:follows]->(b) も機能するはずです

編集:代わりに

START user = node({id})
MATCH user--m 
WHERE user-[:follows]->m 
OR user<-[:followed]-m 
RETURN user  ,m
于 2013-10-07T11:51:13.927 に答える