

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á.

# Use mapas nivelados em vez de mapas aninhados na cláusula UNWIND
<a name="best-practices-content-3"></a>

 Uma estrutura aninhada profunda pode restringir a capacidade do mecanismo de consulta de gerar um plano de consulta ideal. Para aliviar parcialmente esse problema, os seguintes padrões definidos criarão planos ideais para os seguintes cenários: 
+  Cenário 1: UNWIND com uma lista de literais cifrados, que inclui NUMBER, STRING e BOOLEAN. 
+  Cenário 2: UNWIND com uma lista de mapas nivelados, que inclui somente literais cifrados (NUMBER, STRING, BOOLEAN) como valores. 

 Ao escrever uma consulta contendo a cláusula UNWIND, use a recomendação acima para melhorar o desempenho. 

Exemplo do cenário 1:

```
UNWIND $ids as x
MATCH(t:ticket {`~id`: x})
```

Com parâmetros:

```
parameters={
  "ids": [1, 2, 3]
}
```

 Um exemplo do Cenário 2 é gerar uma lista de nós para CREATE ou MERGE. Em vez de emitir várias declarações, use o seguinte padrão para definir as propriedades como um conjunto de mapas nivelados: 

```
UNWIND $props as p
CREATE(t:ticket {title: p.title, severity:p.severity})
```

Com parâmetros:

```
parameters={
  "props": [
    {"title": "food poisoning", "severity": "2"},
    {"title": "Simone is in office", "severity": "3"}
  ]
}
```

Em vez de objetos de nós aninhados, como:

```
UNWIND $nodes as n
CREATE(t:ticket n.properties)
```

Com parâmetros:

```
parameters={
  "nodes": [
    {"id": "ticket1", "properties": {"title": "food poisoning", "severity": "2"}},
    {"id": "ticket2", "properties": {"title": "Simone is in office", "severity": "3"}}
  ]
}
```