Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
La clausola WITH in OpenCypher funge da limite in cui tutto ciò che viene eseguito prima di essere eseguito, quindi i valori risultanti vengono passati alle parti rimanenti della query. La clausola WITH è necessaria quando si richiede un'aggregazione provvisoria o si desidera limitare il numero di risultati, ma a parte questo si dovrebbe cercare di evitare l'uso della clausola WITH. La guida generale è quella di rimuovere queste semplici clausole WITH (senza aggregazione, ordine o limite) per consentire al pianificatore di query di lavorare sull'intera query per creare un piano globale ottimale. Ad esempio, supponiamo di aver scritto una query per restituire tutte le persone che vivono in: India
MATCH (person)-[:lives_in]->(city)
WITH person, city
MATCH (city)-[:part_of]->(country {name: 'India'})
RETURN collect(person) AS result
Nella versione precedente, la clausola WITH limita la posizione del pattern (city)-[:part_of]->(country {name: 'India'})
(che è più restrittivo) precedente. (person)-[:lives_in]->(city)
Ciò rende il piano non ottimale. Un'ottimizzazione di questa query consisterebbe nel rimuovere la clausola WITH e lasciare che il pianificatore calcoli il piano migliore.
MATCH (person)-[:lives_in]->(city)
MATCH (city)-[:part_of]->(country {name: 'India'})
RETURN collect(person) AS result