Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 密码-如何在重复的(a)-[:REL1]->;(b) -[:REL2]->;(c) 链子_Neo4j_Cypher_Graph Databases - Fatal编程技术网

Neo4j 密码-如何在重复的(a)-[:REL1]->;(b) -[:REL2]->;(c) 链子

Neo4j 密码-如何在重复的(a)-[:REL1]->;(b) -[:REL2]->;(c) 链子,neo4j,cypher,graph-databases,Neo4j,Cypher,Graph Databases,我不熟悉neo4j和cypher,正在研究如何建模/查询我的数据 我有一套可供工厂使用/生产的商品。 我将其建模如下: (:Factory)-[:PRODUCES]->(:Good) (:Good)-[:USED_IN]->(:Factory) 我想找到所有的工厂和货物需要创造一个具体的目标好 我可以用我目前建模数据的方式来做这件事吗? 如果您有任何关于以不同方式接近模型的建议,请让我知道 我编写了一个示例查询和结果来展示这种情况。 查询只能匹配2级深度的需求,我正在寻找一些可以匹

我不熟悉neo4j和cypher,正在研究如何建模/查询我的数据

我有一套可供工厂使用/生产的商品。 我将其建模如下:

(:Factory)-[:PRODUCES]->(:Good)
(:Good)-[:USED_IN]->(:Factory)
我想找到所有的工厂和货物需要创造一个具体的目标好

我可以用我目前建模数据的方式来做这件事吗? 如果您有任何关于以不同方式接近模型的建议,请让我知道

我编写了一个示例查询和结果来展示这种情况。 查询只能匹配2级深度的需求,我正在寻找一些可以匹配任意级别深度的内容,而不是像这样硬编码:)

匹配(targetGood:Good),其中targetGood.name=“Fuel”

MATCH(targetGood)您可以在原生密码中执行类似操作。从完成的好节点开始,查找从该节点返回的所有路径,经过关系类型中的
products | USED|u,到关系类型中没有入站
products | USED|u的源节点

MATCH path=(targetGood:Good {name: 'Fuel'})<-[:PRODUCES|USED_IN*..10]-(origin)
WHERE NOT (origin)<-[:PRODUCES|USED_IN]-()
RETURN path

MATCH path=(targetGood:Good{name:'Fuel'})你好,Dave,谢谢你的回复!使用
*10
查询对我不起作用,但它可以使用
*
*…10
例如:
匹配路径=(targetGood:Good{name:'Fuel'})是的,当然,匆忙会浪费喝咖啡前的时间。我添加了
.10
。它在浏览器中看起来会像相同的结果,但是如果您返回
count(path)
当您删除
WHERE NOT…
子句时,您将看到许多中间路径。哦,太好了!我现在明白了为什么不需要where。我有6对14条路径,有对没有。关于
*…10
我还需要把它放在比赛线上。我也试着把where not改成以下,你觉得怎么样<代码>不在(原点)的地方请放心-匹配线是
.10
的位置。我今天只是有一些焦点问题:)
MATCH path=(targetGood:Good {name: 'Fuel'})<-[:PRODUCES|USED_IN*..10]-(origin)
WHERE NOT (origin)<-[:PRODUCES|USED_IN]-()
RETURN path