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

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

最佳答案

如果要创建类似聊天的内容,则在两个节点之间创建很多相同的关系不是一个好主意。

实际上,创建这样的模型会更加容易和快捷:

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


这样,您将能够在邮件中存储更多内容,并且使用节点进行操作更容易。

您可以检查this reddit topic找出执行所需操作的最佳实践。

07-24 19:42