Neo4j中'组分'的直方图

时间:2013-06-23 12:25:34

标签: neo4j

我刚刚开始使用Neo4j,但是我想知道是否可以使用Neo4j。如果我有一个多人网络,例如人,电话号码,航班预订(非常粗略的例子,所以可能无法完美运行)

在此网络中,人们可以拥有多个电话号码,多人可以预订机票,多个号码可以预订航班。

如果我用这个创建一个网络,我会有很多断开连接的组件。大多数组件将是:

  • 1个人有1个电话号码,并在1个预订中。

将会出现以下几种情况:

  • 2个人有2个电话号码,并且一次预订。

然后,随着我们的继续,将会有更多罕见但复杂的组件。

  • 10人有30个电话号码,5个预订。

是否可以运行查询来遍历整个网络并获得所有这些不同组件形状的直方图:

  • 1个人有1个电话号码,在1个预订中。 - 10,000箱
  • 2位客人拥有2个电话号码,并在1次预订。 - 5,000个案例
  • 10个人有30个电话号码,5个预订。 - 2例

你能用Neo4j做这件事吗?

我希望这很清楚,如果没有,请告诉我!感谢

编辑:根据Mohamed E. ManSour的建议,我创建了一个可能清除它的样本http://console.neo4j.org/?id=u8gzhu

1 个答案:

答案 0 :(得分:0)

所以,我认为这可能是你在找什么?它可能是特定于您的情况,但这种按计数分组的方法似乎适用于任何单级组件。

http://console.neo4j.org/r/9w30x5

START p=node:node_auto_index('name:("Person_A","Person_B","Person_C","Person_D","Person_E")') 
MATCH num<-[:HAS]-p-[:IS_ON]-booking 
WITH p, count(distinct booking) AS bookings, count(distinct num) AS nums 
RETURN count(1), bookings, nums