2

次のクエリの場合:

START n=node(1) 
MATCH (n)-[:KNOWS]->(k), (n)-[:LOVES]->(l)
WITH collect(k) + collect(l) as friends, n
FOREACH(f in friends : create unique (n)-[:FRIEND]->(f))

(データは console.neo4j.org のとおりです) 私は友人が Morpheus と Trinity であることを期待しているので、Neo から Morpheus および Neo から Trinity に新しい FRIEND 関係が作成されます。ただし、クエリを実行すると、作成されるリレーションは 1 つだけです (Neo-[:FRIEND]->Morpheus)。クエリを再度実行すると、別のリレーションが作成されます (Neo-[:FRIEND]->Trinity)

何故ですか?(Neo4j 1.8.2 を使用)

4

1 に答える 1

3

今日の変更ログで、これはバグであり、最新の 1.9.M05 バージョンで修正されていることに気付きました。Fixes #489 - CREATE UNIQUE does not work as expected inside FOREACH

詳細はhttps://github.com/neo4j/neo4j/blob/master/packaging/standalone/standalone-enterprise/src/main/distribution/text/enterprise/CHANGES.txtをご覧ください

于 2013-03-12T14:12:58.950 に答える