0

所以我最近一直在研究neo4j,不记得上次我对某事如此兴奋是什么时候。我只是认为这是最酷的事情。我还有很多东西要学,但是...

给出这样的东西: neo4j 图

我和山姆都有生日。他是 10 月 18 日,我的是 10 月 12 日。我怎么会找到山姆的生日?山姆与“出生日期”或类似的日期有关系吗?

我意识到我可能没有以正确的方式接近这个建模,这可能是我的障碍。这只是令人困惑,因为一切都以一种或另一种方式相关,很难确定什么,如果有的话,实际上是一个独特的属性,什么是简单的关系。

如果我要求生日,我想要生日 -> 10 月 18 日 -> sam 和 10 月 12 日 -> 我。

如果我要我,我会想要我 -> 生日 -> 10 月 12 日

如果我要求 10 月 12 日,我想要 10 月 12 日 -> 生日 -> 我(我认为这是正确的)

所以...希望对建模事物以及如何正确地将这些事物联系在一起有所了解。

4

2 回答 2

0

所以我想问题是,你想在这里得到什么答案?

你想找其他过生日的人吗?好吧,这将(理论上)返回数据库中的所有用户,而不仅仅是“Sam”,除非您专门针对“Sam”定制问题

因此,对此进行建模的一种方法是让您的参考节点(这在 neo4j 模型中很常见)引用所有生日节点,然后像这样遍历:

(Reference_Node)-[:BIRTHDAY_REFERENCE]->(Birthday)<-[:HAS_BIRTHDATE]-(User) where User.name='Sam'

这是你想要的?

于 2012-06-16T02:38:51.427 回答
0

您可能还对多级索引时间线感兴趣http://docs.neo4j.org/chunked/stable/cypher-cookbook-path-tree.html以帮助您执行诸如“查找所有在 10 月过生日的用户”之类的事情- 如果您的用例涉及这种查询,那就是。

于 2012-06-16T05:03:03.750 回答