Neo4j在使用动态数组的查询中

odopli94  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(169)
var arr = ["a","b","c","d"];
await session.run(`MATCH (x:Test WHERE x.name IN ${arr}`)

我在nodeJs中使用neo4j数据库,我正在编写查询,但我在arr中出现错误,我尝试了许多方法,但我没有定义arr

uxhixvfz

uxhixvfz1#

JavaScript未按预期的方式设置字符串的格式:

var arr = ["a", "b", "c", "d"]
let x = `MATCH (x:Test) WHRE x.name IN ${arr}`
console.log(x)

这将打印:

"MATCH (x:Test) WHRE x.name IN a,b,c,d"

这不是有效的密码。
要解决此问题,只需向查询中添加一个参数,让Neo4j驱动程序为您进行格式化即可:

await session.run(
    "MATCH (x:Test WHERE x.name IN $arr",
    {arr: arr},
)

请在此处查看此语法的参考。

zkure5ic

zkure5ic2#

试试这个,

var arr = ["a","b","c","d"];
await session.run(`MATCH (x:Test WHERE x.name IN ${JSON.stringify(arr)} `)

相关问题