您不能使用变量,但仍然可以在密码查询(或至少其中一些查询)而不是脚本中执行此操作。如果您只有少数不同的标签,这可能效果很好,但对于许多标签来说无法扩展。
MATCH (n)
WHERE length(labels(n)) = 0
AND n.type = 'XX'
SET n:XX;
MATCH (n)
WHERE length(labels(n)) = 0
AND n.type = 'XY'
SET n:XY;
Run Code Online (Sandbox Code Playgroud)
不可以,目前无法定义带有变量的标签。
您必须在应用程序中执行此操作,方法是获取要在其上添加标签的所有节点,然后发送Cypher Query添加该标签。
PHP中的一个简单示例:
$nodes = $client->sendCypherQuery('MATCH (n) WHERE n.nodeType = "MyType" RETURN n');
foreach ($nodes as $node) {
$label = $node->getProperty('nodeType');
$id = $node->getId();
$client->sendCypherQuery('MATCH (n) WHERE id(n) = '.$id.' SET n :'.$label;
}
Run Code Online (Sandbox Code Playgroud)