Rest 我可以在“创建”或“设置”上参数化标签和属性吗?(休息和交易)
我有一个问题Rest 我可以在“创建”或“设置”上参数化标签和属性吗?(休息和交易),rest,parameters,neo4j,cypher,labels,Rest,Parameters,Neo4j,Cypher,Labels,我有一个问题 1. CREATE (a:%1$s {props}), (b:%2$s {props2}), (b)-[:%3$s {relProps}]->(a) 2. MATCH (a:%1$s { value:{value} })-[:%2$s]->(b) WHERE (b:%3$s) SET (b {props}) 我使用下划线.string来允许字符串格式,但我希望只使用参数 是否可以参数化标签,例如 { "query": CREATE (a:{label} {pro
1. CREATE (a:%1$s {props}), (b:%2$s {props2}), (b)-[:%3$s {relProps}]->(a)
2. MATCH (a:%1$s { value:{value} })-[:%2$s]->(b) WHERE (b:%3$s) SET (b {props})
我使用下划线.string来允许字符串格式,但我希望只使用参数
是否可以参数化标签,例如
{
"query": CREATE (a:{label} {props}),
"params": {
"label":"SomeLabel",
"props":{....}
}
}
也可以参数化集合上的属性吗
{
"query": "MATCH ..... SET (node {props})"
"params": {
"props":{
"prop1:":"Property Name",
....
}
}
}
还有一种方法可以对“合并”进行参数化吗?它告诉我“参数映射不能在合并模式中使用(请改用文字映射,例如“{id:{param}.id}”)”
编辑:参数化where子句怎么样
MATCH (:Identity%1$s {nodeId:{nodeId})-[r*2..3]-(node1)-[b:%2$s]->(node2) %4$s return *
我有%4$s可以放我需要的任何条款。如果我想把它作为
WHERE node1.nodeId= {someNodeId} SET b= {props}
这可能吗
另外,在执行事务集时,node={props}似乎不起作用。我试过了
statements:[
{
"statement":"..... SET node={props}",
"parameters":{
"props": {
"description":"some description"
}
}
}
]
有什么建议吗??谢谢大家! 无法参数化标签,因为不同标签的查询计划可能看起来不同 可以使用映射参数化多个属性,请注意
SET
语法中的细微差别:
{
"query": "MATCH ..... SET node = {props}"
"params": {
"props":{
"prop1:":"Property Name",
....
}
}
}
不是100%关于MERGE
的,但我想这应该行得通:
{
"query": "MERGE (n:Label {identifier: {idValue}) ON CREATE SET n = {props}"
"params": {
"identifier": 123,
"props":{
"identifier": 123,
"prop1:":"Property Name",
....
}
}
}
我发现了
CREATE ... SET node = {props}
使用参数设置多个属性的技巧
doc:谢谢Stefan,设置多个属性肯定可以用于该查询。我会像你建议的那样尝试合并!这能做到吗?这不是一个全有或全无的方法?我只想更新一个属性,但通过执行Set node={props}操作,如果我设置了一个属性,所有参数都会被重写:(使用
SET n+={props}
覆盖现有属性并添加新属性-保留其他属性不变。嘿,Stefan,我收到一个错误,说“无效输入\'+\”:预期为空白,注释……。。我的查询是:“匹配(a:%1$s{value:{value})-[:%2$s]>(b)其中(b:%3$s)设置b+={props}”