いくつかの異なるケースに応じてプロパティを使用してリレーションシップを作成しようとしています。私はFOREACHとCASEを使うことができると思った。Cypherで1つのCASE/FOREACHステートメントで複数のプロパティを追加する
LOAD CSV WITH HEADERS FROM 'file:///hwconnectIDs.csv' AS cnct
MATCH (h1:hardware), (h2:hardware), (c:cable)
WHERE (h1.hwID= cnct.conID1) AND (h2.hwID = cnct.conID2) AND (c.cableID =cnct.cableID)
FOREACH (plugType IN
CASE WHEN (h1.plug1=c.plug1 AND c.plug2=h2.plug1)
THEN [c.plug1,c.plug2]
CASE WHEN (h1.plug2=c.plug2 AND c.plug1=h2.plug1)
THEN [c.plug2,c.plug1]
ELSE [] END
|
CREATE (h1)<-[:connect{plug:plugType[0]}]-(c)-[:connect{plug:plugType[1]}]->(h2)
)
問題:
- 私がELSE-についてFOREACH
- に変数plugTypeアレイ型を作成することはできませんようです。ここ は、私のコードの簡易版であります私は関係を全く作りたくないのですが。現時点では、関係プロパティプラグタイプの値は、存在しない関係全体ではなく空白になります。
注:WHERE条件は、正しいハードウェアデバイスとケーブルで作業していることを保証します。ファイルhwconnectIDs.csvは、基本的には、ケーブルCによってリンクされることを意図デバイスH1とH2のリストを与えます。
/elseif /../ else他の言語では、のようなCypherのいくつかの異なるケースに従ってコマンドを実行する方法はありますか?
を助けますが、エラーメッセージまたは類似を得るのですか? –
私は前に1つあった。しかし、私は今これを試したときに、私は1つを取得しませんでした。それはちょうど "(変化なし、レコードなし)"と言いました。 –
'MATCH'ステートメントで参照されているノードが確実に存在していますか? –