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)