2015-09-25 169 views
0

Neo4j新手在这里。 我有一个图形数据库与节点为人,节点之间的边界是关系POSTED,POSTED有属性“消息”,现在我想返回与某些消息的关系。我写了如下查询:Neo4j查询关系属性

MATCH (ppl) -[p:POSTED]->(s) 
WHERE p.message = "How are you?" 
RETURN p 

它什么都没有返回。

什么是进行关系查询的正确方法? 我能做出这样一些疑问:如果你想创造这样一个聊天

MATCH (a) -[:KNOWS]->(ppl), 
(ppl) -[p:POSTED]->(s) 
WHERE p.message = "How are you?" 
RETURN p 
+0

做,如果尝试以下查询,你能得到什么: MATCH(PPL) - [P:发布] - >(S) RETURN p LIMIT 10 –

+0

我将利润归还所有与他人张贴的关系点头。下面是如何添加边缘:(Nick) - [:POSTED {messsage:'你好吗?'}] - >(Sam) – daolincheng

+0

这三个sss在messsage中是一个错字吗? –

回答

1

创建了很多的两个节点之间的关系一样是不是一个好主意。

事实上,这将是一个很多更容易和更快地创建这样一个模型:

(:User{Foo:"Bar})-[:POSTED]->(:Message{content:"Hello World"})-[:SENT_TO]->(:User{Foo:"blabla"}) 

这样一来,你就可以存储在您的讯息的方式更多的事情,它更容易与节点进行操作。

您可以检查this reddit topic以找出所需的最佳做法。