

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 複数のノードの更新/移行
<a name="best-practices-merge-multiple-nodes"></a>

 複数のノードで `MERGE` または `CREATE` クエリを実行する場合は、ノードごとに MERGE/CREATE 句を使用するのではなく、単一の MERGE/CREATE 句と組み合わせて `UNWIND` を使用することをお勧めします。1 つのノードに 1 つの句を使用するクエリは、各行を最適化する必要があるため、実行プランが非効率になります。これにより、クエリの実行時間の大部分が、実際の更新ではなく静的処理に費やされます。

 ノードあたりの 1 つの句は、ノード数の増加に合わせてスケールされないため、最適ではありません。

```
MERGE (p1:Person {name: 'NameA'})
ON CREATE SET p1 += {prop1: 'prop1V1', prop2: 'prop2V1'}
MERGE (p2:Person {name: 'NameB'})
ON CREATE SET p2 += {prop1: 'prop1V2', prop2: 'prop2V2'}
MERGE (p3:Person {name: 'NameC'})
ON CREATE SET p3 += {prop1: 'prop1V3', prop2: 'prop1V3'}
```

 `UNWIND` を 1 つの MERGE/CREATE 句と組み合わせて使用すると、同じ動作でもより最適な実行プランが可能になります。これを念頭に置いて、変更されたクエリは次のようになります。

```
## If not using custom id for nodes/relationship
UNWIND [{name: 'NameA', prop1: 'prop1V1', prop2: 'prop2V1'}, {name: 'NameB', prop1: 'prop1V2', prop2: 'prop2V2'}, {name: 'NameC', prop1: 'prop1V3', prop2: 'prop1V3'}] AS props
MERGE (p:Person {name: props.name})
ON CREATE SET p = props

## If using custom id for nodes/relationship
UNWIND [{`~id`: '1', 'name': 'NameA', 'prop1: 'prop1V1', prop2: 'prop2V1'}, {`~id`: '2', name: 'NameB', prop1: 'prop1V2', prop2: 'prop2V2'}, {`~id`: '3', name: 'NameC', prop1: 'prop1V3', prop2: 'prop1V3'}] AS props
MERGE (p:Person {`~id`: props.id})
ON CREATE SET p = removeKeyFromMap(props, '~id')
```