我有一个简单的函数,可将用户与ID匹配,并应创建这样的关系。
const createRelation = (userId: string, todoId: string, relationship: string) => {
return session.run(
'MATCH (a:User),(b:Todo)' +
'WHERE a.id = $userId AND b.id = $todoId' +
'CREATE (b)-[r:$relationship]->(a)' +
'RETURN r',
{
userId: userId,
todoId: todoId,
relationship: relationship,
}
);
}
此代码不会引发任何错误,但也不会创建关系。如果我手动设置userId
和todoId
的值,例如到"1"
,效果很好!我使用的参数是否错误?如果是这样,怎么办? (我也已经尝试过手动设置关系类型,如果使用参数,则不会创建任何关系。)
答案 0 :(得分:0)
结果是您无法参数化for these kinds of constructs.
参数不能用于以下构造,因为它们构成了被编译成查询计划的查询结构的一部分:
- 属性键;因此,MATCH(n)在哪里n。$ param ='something'无效
- 关系类型
- 标签
我自己构建了字符串,如下所示:
'WHERE a.id = ' + userId + ' AND b.id = ' + todoId +