我的问题是,在我插入几个类型为uri的节点后:
"http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Red"
稍后,我想提取标签(在这种情况下为“红色”)之后的部分,因此我使用split函数并创建具有值tail(records)的属性名称:
MATCH (n) WITH split (n.uri, '#') AS records, n
WHERE head(records) = 'http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine'
SET n.name = tail(records)
在为一组节点成功创建了具有适当名称的属性名称后,我检查(目前一切正常):
Match (n) Return keys(n)
我为所有节点创建一个标签(概念):
MATCH (n) SET n :concept RETURN n
稍后尝试访问属性“名称”的值:
Match (n{name: 'Red'}) RETURN n
或
Match (n:concept{name: 'Red'}) RETURN n
我得到的响应是空的(显然,它甚至没有连接到创建的标签,甚至在我无法访问它之前)。多谢您的协助。谢谢!
答案 0 :(得分:1)
TAIL(x)
函数返回一个 list (在第一个值之后的x
中的所有值),而不是标量值。因此,示例中的name
的值为["Red"]
,而不是"Red"
。
代替:
SET n.name = tail(records)
您的Cypher代码应使用以下代码(假设您的uri
值始终嵌入“#”):
SET n.name = records[1]