【发布时间】:2018-08-07 09:55:06
【问题描述】:
我是 Neo4j 的新手,正在调查它是否符合我的需求。有下图:
CREATE (a:Stop {name: 'A'})-[:ROUTE {dist: 1}]->(b:Stop {name: 'B'})
CREATE (a)-[:ROUTE {dist: 4}]->(c:Stop {name: 'C'})
CREATE (a)-[:ROUTE {dist: 10}]->(d:Stop {name: 'D'})
CREATE (b)-[:ROUTE {dist: 3}]->(e:Stop {name: 'E'})
CREATE (c)-[:ROUTE {dist: 4}]->(d)
CREATE (c)-[:ROUTE {dist: 2}]->(f:Stop {name: 'F'})
CREATE (d)-[:ROUTE {dist: 1}]->(e)
CREATE (e)-[:ROUTE {dist: 3}]->(b)
CREATE (e)-[:ROUTE {dist: 2}]->(a)
CREATE (f)-[:ROUTE {dist: 1}]->(d)
我怎样才能创建一些限制在指定里程的自行车路线?假设我想获得从“E”到“E”的所有可能路线,总里程小于 16,并允许重复任何节点到节点的关系。结果应该是这样的:
|---------------|---------|
| Route | Mileage |
|---------------|---------|
| E-A-B-E | 6 |
| E-A-B-E-B-E | 15 |
| E-A-B-E-A-B-E | 12 |
| ... | |
重点是要重复路线,圈数,例如 E-A-B-E-A-B-E。这是否可能仅与密码有关,或者有更好的方法,例如通过密码获取所有独特的路线,然后在后端以某种方式计算可能的圈数?根据我的实验,我无法让 cypher 遍历相同的节点两次或更长时间。
【问题讨论】: