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