Typescript Neo4j JS驱动程序cypher“;其中;子句不使用参数

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

我有一个简单的函数,它将用户与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”
,则工作正常!我是否使用了错误的参数?如果是,怎么做?(我也尝试过手动设置关系类型,如果我使用参数,则不会创建任何关系。)

结果是无法参数化

参数不能用于以下构造,因为这些构造是编译到查询计划中的查询结构的一部分:

  • 属性密钥;因此,匹配(n),其中n.$param='something'无效
  • 关系类型
  • 标签
我自己做的绳子是这样的:

'WHERE a.id = ' + userId + ' AND b.id = ' + todoId +

结果是你不能参数化

参数不能用于以下构造,因为这些构造是编译到查询计划中的查询结构的一部分:

  • 属性密钥;因此,匹配(n),其中n.$param='something'无效
  • 关系类型
  • 标签
我自己做的绳子是这样的:

'WHERE a.id = ' + userId + ' AND b.id = ' + todoId +