Reputation: 2139
I wonder why my query does not work while before I could get answer from it:
I have lable as "Person" who are connected to with relation "HAS" lables as "Data" and Data are connected to with relation "TAGGED" Tag as another node
I want to gain common tag between two person
MATCH (o:Person {username: "Mahsa" })-[:HAS]-()-[r1:TAGGED]->(tag)
<- [r2:TAGGED]-()-[:HAS]-(f:Person {username: "Frank"})
return tag.name
my Graph setup:
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
and when I test this query on http://console.neo4j.org/ again I get 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
Upvotes: 1
Views: 59
Reputation: 41676
None of your tags are shared.
If you change your setup to have Tag1
and Tag2
shared then it returns sth.
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
see: http://console.neo4j.org/r/9a9cto
Your data setup is wrong, it misses labels and the correct property-names for your first query!
Upvotes: 1