我有一个在数据库客户机中工作的搜索查询,但是在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) {

如何完成报价,使之发挥作用?

最佳答案

整个regex必须作为参数传递:

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(...)

**使用多个参数更新**:
var regexStr = '(?i).*' + search.value + '.*'
var source = 'BoxA'
var destination = 'Box J'
var query = `MATCH (n)-[l:DATA_FLOWS]->(m) WHERE l.nme =~ {feedParam}
AND n.nme = $source AND m.nme = $destination
RETURN n, l, m`
session.run('', {feedParam: regexStr, source: source, destination: destination})
    .then(...)

07-25 22:41