我有一个一直在处理的问题。基本上我有两组类类型节点,一组称为 Genes,另一组称为 n4sch__Class,Genes 有一个参数“GO ID”,将它们链接到类类别名称。获得所有匹配的类节点后,我想创建一个也基于基因节点参数“Qualifier”的关系,并且该参数是动态的,因此我需要使用 apoc.create.relationship。查询也相当大,因此需要进行批处理。这是我到目前为止所拥有的,但它返回一个错误:
call apoc.periodic.iterate( "MATCH (n:Genes),(c:n4sch__Class) WHERE n.
GO ID = c.n4sch__name RETURN n,c", "WITH n, c, CALL apoc.create.relationship(n, n.Qualifier, {}, c) YIELD rel RETURN rel",{batchMode: "BATCH_SINGLE", BatchSize:100})
“输入‘apoc’无效:预期...(第 2 行,第 6 列(偏移量:17)) “调用 apoc.create.relationship(n, n.Qualifier, {}, c) YIELD rel RETURN rel” ^”:17
来自文档这里:
在名称中使用特殊字符
非字母字符,包括 数字、符号和空白字符可以在名称中使用,但是 必须使用反引号转义。例如:
、^n
、1first
、 和$$n
。数据库名称是一个例外,可能 包含点而无需转义。my variable has spaces
要修复您的查询,只需在“GO ID”周围添加反引号即可:
CALL apoc.periodic.iterate(
"MATCH (n:Genes),(c:n4sch__Class)
WHERE n.`GO ID` = c.n4sch__name
RETURN n, c",
"WITH n, c,
CALL apoc.create.relationship(n, n.Qualifier, {}, c)
YIELD rel
RETURN rel",
{batchMode: "BATCH_SINGLE", BatchSize: 100})