首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用变量动态创建Neo4j/Cypher标签?

如何使用变量动态创建Neo4j/Cypher标签?
EN

Stack Overflow用户
提问于 2020-02-26 18:02:43
回答 2查看 157关注 0票数 0

当我尝试的时候:

代码语言:javascript
运行
复制
CALL apoc.load.jdbc('jdbc:mysql://localhost/mysql?user=root&password=root&useUnicode=true&characterEncoding=utf8','select * from db')YIELD row
WHERE row.label = 'dis' MERGE (n:dis {name: row.keyword})
WHERE row.label = 'part' MERGE (n:part {name: row.keyword})

并且有一个错误

代码语言:javascript
运行
复制
Neo.ClientError.Statement.SyntaxError: Invalid input 'H': expected 'i/I'
EN

回答 2

Stack Overflow用户

发布于 2020-02-26 20:52:35

您可以使用apoc函数来执行此操作

代码语言:javascript
运行
复制
CALL apoc.merge.node(['Label'], identProps:{key:value, …​}, onCreateProps:{key:value,…​}, onMatchProps:{key:value,…​}})

以下查询将动态读取标签名称并将节点与各自的标签合并

代码语言:javascript
运行
复制
CALL apoc.load.jdbc('jdbc:mysql://localhost/mysql?user=root&password=root&useUnicode=true&characterEncoding=utf8','select * from db')YIELD row 
CALL apoc.merge.node([row.label], identProps:{name:row.keyword}, onCreateProps:{}, onMatchProps:{}}) YIELD node 
RETURN node 
票数 0
EN

Stack Overflow用户

发布于 2020-02-28 02:51:15

如果您打算匹配具有特定标签节点,那么您可能应该使用MATCH (:label)子句而不是WHERE label = ...

代码语言:javascript
运行
复制
CALL apoc.load.jdbc('jdbc:mysql://localhost/mysql?user=root&password=root&useUnicode=true&characterEncoding=utf8','select * from db')YIELD row
OPTIONAL MATCH (row:dis) MERGE (n:dis {name: row.keyword})
OPTIONAL MATCH (row:part) MERGE (n:part {name: row.keyword})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60411310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档