

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizar/mesclar vários nós
<a name="best-practices-merge-multiple-nodes"></a>

 Ao executar `MERGE` ou `CREATE` consultar em vários nós, é recomendável usar um `UNWIND` em combinação com uma única MERGE/CREATE cláusula em vez de usar uma MERGE/CREATE cláusula para cada nó. As consultas que usam uma cláusula por nó levam a um plano de execução ineficiente devido à necessidade de otimizar cada linha. Isso faz com que a maior parte do tempo de execução da consulta seja gasto no processamento estático em vez da atualização real. 

 Uma cláusula por nó não é ideal, pois não é escalável com o aumento do número de nós: 

```
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'}
```

 Usar um `UNWIND` em conjunto com uma MERGE/CREATE cláusula permite o mesmo comportamento, mas um plano de execução mais otimizado. Com isso em mente, a consulta alterada ficaria assim: 

```
## 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')
```