如何使用代码内的引号解析搜索查询

时间:2018-11-07 18:04:04

标签: node.js neo4j cypher

我有一个搜索查询,该查询在数据库客户端中运行,但是在具有引号解析错误的nodejs中使用时。

这是原始查询

   match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ '(?i).*new.*' return n, l, m

我正在尝试将其用于编码。

session.run('match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ ''(?i).*'{feedParam}'.*' return n, l, m', {feedParam:search.value}).then(function (result) {

如何完成报价以使其生效?

2 个答案:

答案 0 :(得分:3)

整个正则表达式必须作为参数传递:

''

应更改为:

session.run('match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ ''(?i).*'{feedParam}'.*' return n, l, m', {feedParam:search.value})
.then(...)

**使用多个参数**进行更新:

var regexStr = '(?i).*' + search.value + '.*'
session.run('MATCH (n)-[l:DATA_FLOWS]->(m) WHERE l.nme =~ {feedParam} RETURN n, l, m', {feedParam: regexStr})
.then(...)

答案 1 :(得分:1)

您可以使用+连接字符串,并且可以对字符串使用'或'。

因此将'替换为'+"'"+'

在您的情况下,您没有使用“,因此您只需将字符串放在其中

session.run("match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ '(?i).*new.*' return n, l, m", {feedParam:search.value})