Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Elusión de cálculos ~id en la consulta
Cuando utilice la opción personalizada IDs en las consultas, realice siempre cálculos estáticos fuera de las consultas y proporcione estos valores en los parámetros. Cuando se proporcionan valores estáticos, el motor puede optimizar mejor las búsquedas y evitar analizar y filtrar estos valores.
Si desea crear bordes entre los nodos que existen en la base de datos, una opción podría ser:
UNWIND $sections as section MATCH (s:Section {`~id`: 'Sec-' + section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
Con los parámetros:
parameters={sections: [{id: '1'}, {id: '2'}]}
En la consulta anterior, el id de la sección se calcula en la consulta. Dado que el cálculo es dinámico, el motor no puede insertar los ID de forma estática y termina analizando todos los nodos de sección. A continuación, el motor realiza un filtrado posterior de los nodos necesarios. Esta operación puede resultar costosa si hay muchos nodos de sección en la base de datos.
Una mejor forma de lograrlo es anteponer Sec- a los ID que se van a transferir a la base de datos:
UNWIND $sections as section MATCH (s:Section {`~id`: section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
Con los parámetros:
parameters={sections: [{id: 'Sec-1'}, {id: 'Sec-2'}]}