2

プロジェクトにneo4j 2.0を使用しています。関係が存在しない場合は Cypher を使用して追加し、そうでない場合は配列プロパティを更新します。

MATCH (a:Term), (b:Term) 
WHERE a.Name = 'abc' AND b.Name = 'xyz' 
CREATE UNIQUE a-[r:gives]->b
SET r.positive = coalesce(r.positive + (last(r.positive)/2),[0.125])
RETURN r;

ただし、coalesce と last を使用すると、エラーが発生します (基本的に、新しい関係が作成されたときに r.positive は存在しません。おそらく、coalesce を正しく使用していない可能性があります)

Don't know how to Divide(LastFunction(Product(r,positive(14),true)),Literal(2)) `2` with `null`

このクエリを書く別の方法はありますか?

ありがとう

4

1 に答える 1

3

合体は問題ありませんが、r.positiveisの場合も null であり、半分に分割することはできません。nulllast(r.positive)null

これはあなたが期待することをしますか?

MATCH (a:Term),(b:Term) 
WHERE a.name = 'abc' AND b.name = 'xyz' 
CREATE UNIQUE (a)-[r:gives]->(b) 
SET r.positive = 
  CASE WHEN NOT (HAS (r.positive)) 
    THEN [0.125]
  ELSE r.positive + LAST(r.positive)/2 END 
RETURN r
于 2013-11-05T10:56:58.150 に答える