Typescript Neo4j JS驱动程序cypher“;其中;子句不使用参数
我有一个简单的函数,它将用户与Id匹配,并且应该创建这样的关系Typescript Neo4j JS驱动程序cypher“;其中;子句不使用参数,typescript,neo4j,cypher,Typescript,Neo4j,Cypher,我有一个简单的函数,它将用户与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)-
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”
,则工作正常!我是否使用了错误的参数?如果是,怎么做?(我也尝试过手动设置关系类型,如果我使用参数,则不会创建任何关系。)结果是无法参数化
参数不能用于以下构造,因为这些构造是编译到查询计划中的查询结构的一部分:
- 属性密钥;因此,匹配(n),其中n.$param='something'无效
- 关系类型
- 标签
'WHERE a.id = ' + userId + ' AND b.id = ' + todoId +
结果是你不能参数化 参数不能用于以下构造,因为这些构造是编译到查询计划中的查询结构的一部分:
- 属性密钥;因此,匹配(n),其中n.$param='something'无效
- 关系类型
- 标签
'WHERE a.id = ' + userId + ' AND b.id = ' + todoId +