0
我看到一个奇怪的问题,即当我运行以下查询时,Cypher查询正在创建多个节点,并且创建的节点数取决于多少个元素查询Neo4J Cypher查询在查询中定义了IN子句时创建了多个节点
MATCH (shipper:Shipper)-[:SHIPS_PRODUCT_TYPE]->(prodType:ProductType)
WHERE shipper.InternalId = 1
AND prodType.InternalId IN [11,3,1]
CREATE (load:Shipment {
InternalId: 5,
NodeType: "Shipment",
Created: "2013-11-24T18:25:12.3179997+05:30",
Modified: "0001-01-01T00:00:00+00:00"})
RETURN distinct load AS load, shipper AS shipper
我希望这个查询只返回一行数据,的IN子句中定义,但返回3行作为其创造3“载:装运”节点使用相同的数据
我是否错过了如何使用这个IN子句,因为我甚至没有使用我在这个例子的创建语句匹配?
编辑
BTW我忘了提及,我也试过如下即便如此,我结束了与多个节点
介绍With语句MATCH (shipper:Shipper)-[:SHIPS_PRODUCT_TYPE]->(prodType:ProductType)
WHERE shipper.InternalId = 1
AND prodType.InternalId IN [11,3,1]
WITH shipper, prodType
CREATE (shipper)-[:HAS_PUBLISHED]->(load:Shipment {
InternalId: 5,
NodeType: "Shipment",
Created: "2013-11-24T18:25:12.3179997+05:30",
Modified: "0001-01-01T00:00:00+00:00"})-[:CONTAINS_PRODUCT]->(prodType)
RETURN distinct load AS load, shipper AS shipper
问候 基兰
我刚刚从我的更大的查询中提取了这个,这就是它没有真正显示意图的原因。我想要做的是首先过滤并获取所需的节点,然后创建一个新节点,然后创建与新创建的节点与其他节点的关联。我也试图在比赛和创造之间使用声明,即使如此,我也得到了相同的结果。你能否帮助我理解在这种情况下究竟发生了什么,它是否为每个匹配路径执行创建? – Kiran
是的,它为匹配上下文中的每个结果创建。 –
在这种情况下,如何写一个查询来实现我所尝试的。即我有托运人和他们处理的一系列产品,当他们发布货物时,他们会提供货物中的产品。在我上面的编辑中,我试图获取托运人和产品,然后尝试将其与我正在创建的新货物相关联。 – Kiran