在neo4j属性上将数据存储为数组/列表

时间:2013-09-24 18:35:55

标签: graph neo4j cypher graph-databases

我是Neo4j的新手,手头有以下问题。 我正在尝试开发一个社交网站,其中我想将两个用户之间交换的消息存储在他们的关系属性中。 为此,我试图以关系属性的数组/列表的形式存储他们的所有消息。你能否建议Neo4j是否提供此类操作。

我还想知道我是否可以在这个关系属性和数组/列表更新中插入我的消息(即在下一个索引上添加新消息)

例如:

User1 -> User2 : Hi, whats up 
User2 -> User1 : Hi, I am in college

So the relationship property stores the message in the form of list such as:
["Hi,Whats up", "Hi, I am in college"]

以这种方式...... 感谢

1 个答案:

答案 0 :(得分:4)

Neo4j支持数组属性,请参阅http://neo4j.com/docs/rest-docs/current/#rest-api-property-values

但是我不确定你是否在这里使用了一个好的建模方法。如果将所有消息存储在数组中,则图表中没有明确的会话时间轴。更糟糕的是,如果User1向User2发送2条消息而没有User2之间的响应,那么您将不再知道谁是发送方和接收方。

因此,请考虑引入代表对话的节点。该对话与两个用户有关。另一种关系指向此对话中消息流的开始(或结束)。消息本身与NEXT和/或PREVIOUS相互关联。