Filter 如何在Neo4j中使用谓词过滤内容?

Filter 如何在Neo4j中使用谓词过滤内容?,filter,neo4j,cypher,Filter,Neo4j,Cypher,我的第一个问题是: MATCH (U:User)-[S:Has|Shout]->(P:Post) WHERE U.user_id=1 RETURN U.username, P.post MATCH (U:User)-[S:Shout]->(P:Post)<-[:Has]-(FU:User) WHERE U.user_id=1 RETURN U.username, P.post 上面的查询将返回用户_id=1的所有结果,如: U.username P.post rioedu

我的第一个问题是:

MATCH (U:User)-[S:Has|Shout]->(P:Post)
WHERE U.user_id=1
RETURN U.username, P.post
MATCH (U:User)-[S:Shout]->(P:Post)<-[:Has]-(FU:User)
WHERE U.user_id=1
RETURN U.username, P.post
上面的查询将返回用户_id=1的所有结果,如:

U.username  P.post
rioeduardo  tomorrow
rioeduardo  hurray
rioeduardo  lala
rioeduardo  hey
rioeduardo  nice
rioeduardo  testing
我还有第二个问题,比如:

MATCH (U:User)-[S:Has|Shout]->(P:Post)
WHERE U.user_id=1
RETURN U.username, P.post
MATCH (U:User)-[S:Shout]->(P:Post)<-[:Has]-(FU:User)
WHERE U.user_id=1
RETURN U.username, P.post
不,我想从user_id=1和其他用户那里删除结果,因此结果将是:

U.username  P.post
rioeduardo  nice
rioeduardo  testing
我已经试过在Neo4j中使用谓词,但什么也没有得到。查询如下:

MATCH (U:User)-[S:Has|Shout]->(P:Post), filter=(U:User)-[:Shout]->(P:Post)<-[:Has]-(FU:User)
WHERE U.user_id=1 AND NONE (x IN nodes(filter) WHERE x.user_id = 1)
RETURN U.username, P.post
MATCH(U:User)-[S:Has | Shout]->(P:Post),filter=(U:User)-[:Shout]->(P:Post)

试试下面的方法

MATCH (U:User)-[S:Has|Shout]->(P:Post)
WHERE U.user_id=1 AND NOT (U:User)-[:Shout]->(P:Post)<-[:Has]-(:User)
RETURN U.username, P.post
MATCH(U:User)-[S:Has | Shout]->(P:Post)
其中U.user_id=1且不(U:user)-[:Shout]->(P:Post)表示
FU未定义(第2行,第64列)“其中U.user_id=1且不(U:user)-[:Shout]->(P:Post)