簡體   English   中英

如何使用變量動態創建 Neo4j/Cypher 標簽?

[英]How to creating Neo4j/Cypher labels dynamically with variable?

當我嘗試:

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

並且有一個錯誤

Neo.ClientError.Statement.SyntaxError: Invalid input 'H': expected 'i/I'

您可以使用 apoc 功能來執行此操作

CALL apoc.merge.node(['Label'], identProps:{key:value, …​}, onCreateProps:{key:value,…​}, onMatchProps:{key:value,…​}})

以下查詢將動態讀取標簽名稱並合並具有相應標簽的節點

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 

如果您打算匹配具有特定標簽的節點,您可能應該使用MATCH (:label)子句而不是WHERE label = ...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM