6

メイン Neo4j グラフ (mainDB) の一部を別のグラフ (dupDB) にコピーしていますが、その際に、dupDB に mainDB と同様のプロパティを持つノードを作成するにはどうすればよいですか。

私はするだろう

Node main = mainDB.getNodeByID(477);
Node dup = dupDB.createNode();

main の各プロパティを手動で dup にコピーする必要がありますが、これを行うための 1 行の方法はありますか?

4

2 に答える 2

8

Neo4j 2.1 のマップで複製を作成できます (以前のことはわかりません)。

MATCH (n:Node {name: 'abc'}) 
WITH n AS map 
CREATE (copy:Node) 
SET copy=map
RETURN copy

いずれかのプロパティに一意性制約がある場合、メッセージが表示されて失敗します...

ラベル XX とプロパティ "property"=[value] を持つノードが既に存在します

一意性制約を使用してプロパティに新しい値を指定し、新しいノードを作成して、元のノードから他の一意でないプロパティ値をコピーすることで、これを回避できます。

MATCH (n:Node {name: 'abc'}) 
WITH n as map 
CREATE (copy:Node {name: 'def'}) 
SET copy.property1 = map.property1
, copy.property2 = map.property2
RETURN copy
于 2014-10-28T00:12:21.640 に答える