Estoy durante el proceso de reescribir consultas con valores ya inyectados para pasar el objeto de query y params .
Las consultas que usan ints funcionan bien (necesito usar la traducción int de neo4j ):
... ID(node)=$nodeId ... LIMIT $fetchLimit import { int } from 'neo4j-driver' ... params = { nodeId: int(nodeId) fetchLimit: int(fetchLimit) }En algunas consultas estoy buscando cadenas y no estoy usando la búsqueda de cadena "normal"
WHERE node.property=$value <-- "normal" search WHERE node.property=~"$value.*" <-- my searchPasar parámetros no funciona en este caso.
Tengo la sensación de que cuando paso value: 'foo' , neo4j lo resuelve de la siguiente manera:
WHERE node.property=~"$value.*" ... value: 'foo' *(injects parameters)* WHERE node.property=~"'foo'.*" <-- these inner quotation marks shouldn't be there¿Cómo pasar cadenas a esta consulta y esperar resultados adecuados?
(tenga en cuenta que estoy seguro de que la consulta está escrita correctamente porque cuando inyecto parámetros directamente para consultar usando ${value} de JS
Puede fusionar dos cadenas con + . La expresión regular después de =~ es solo una cadena.
Entonces, trabajar con Cypher sería:
WHERE node.property =~ $value + ".*"Alternativamente, puede ensamblar la cadena de expresión en JavaScript:
search = 'foo' params = { value: `${search}.*` } WHERE node.property =~ $value