我想知道为什么我的查询在我得到答案之前不起作用:
我喜欢" Person"谁与人之间的关系" HAS" lables as" Data"和数据连接关系" TAGGED"标记为另一个节点
我想获得两个人之间的共同标签
MATCH (o:Person {username: "Mahsa" })-[:HAS]-()-[r1:TAGGED]->(tag)
<- [r2:TAGGED]-()-[:HAS]-(f:Person {username: "Frank"})
return tag.name
我的图表设置:
CREATE (_0 { `name`:"Mahsa" }) CREATE (_1 { `name`:"Frank" }) CREATE (_2 { `name`:"Data1" }) CREATE (_3 { `name`:"Data2" }) CREATE (_4 { `name`:"Tag1" }) CREATE (_5 { `name`:"Tag2" }) CREATE (_6 { `name`:"Tag3" }) CREATE (_7 { `name`:"Tag4" }) CREATE _0-[:`HAS`]->_2 CREATE _0-[:`HAS`]->_3 CREATE _1-[:`HAS`]->_2 CREATE _1-[:`HAS`]->_3 CREATE _2-[:`TAGGED`]->_4 CREATE _2-[:`TAGGED`]->_5 CREATE _3-[:`TAGGED`]->_6 CREATE _3-[:`TAGGED`]->_7
当我再次在http://console.neo4j.org/上测试此查询时,我得到null:
MATCH (me)-[:HAS]->(myFavorites)-[:TAGGED]->(tag)
<-[:TAGGED]-(theirFavorites)<-[:HAS]-(people)
WHERE me.name = 'Mahsa' AND NOT me=people
RETURN people.name AS name, count(*) AS similar_favs
ORDER BY similar_favs DESC
答案 0 :(得分:1)
您的所有代码均未共享。
如果您将设置更改为共享Tag1
和Tag2
,则会返回......
create
(_0 {`name`:"Mahsa"}),
(_1 {`name`:"Frank"}),
(_2 {`name`:"Data1"}),
(_3 {`name`:"Data2"}),
(_4 {`name`:"Tag1"}),
(_5 {`name`:"Tag2"}),
_0-[:HAS]->_3,
_0-[:HAS]->_2,
_1-[:HAS]->_3,
_1-[:HAS]->_2,
_2-[:TAGGED]->_5,
_2-[:TAGGED]->_4,
_3-[:TAGGED]->_5,
_3-[:TAGGED]->_4
请参阅:http://console.neo4j.org/r/9a9cto
您的数据设置错误,它错过了第一个查询的标签和正确的属性名称!