我有一个搜索查询,该查询在数据库客户端中运行,但是在具有引号解析错误的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) {
如何完成报价以使其生效?
答案 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})