我可以在 CREATE 或 SET 上参数化标签和属性吗? (休息和事务)

2024-03-17

我有一个疑问

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

我使用 underscore.string 来允许字符串格式,但希望坚持使用参数。

是否可以参数化标签,例如

{ 
  "query": CREATE (a:{label} {props}),
  "params": {
    "label":"SomeLabel",
    "props":{....}
  }
}

是否也可以参数化 SET 上的属性?

{
  "query": "MATCH ..... SET (node {props})"
  "params": {
    "props":{
      "prop1:":"Property Name",
      .... 
    }
  }
}

还有一种方法可以对“MERGE”进行参数化吗?它给我“参数映射不能在合并模式中使用(使用文字映射,例如“{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}

那可能吗??

另外,当我进行交易时 SET node={props} 似乎不起作用。我试过

statements:[
  {
    "statement":"..... SET node={props}",
    "parameters":{
      "props": {
        "description":"some description"
      }
    }
  }
]

有什么建议么??谢谢你!


您无法参数化标签,因为不同标签的查询计划可能看起来不同。

可以使用映射对多个属性进行参数化,请注意两者之间的细微差别SET syntax:

{
  "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",
      .... 
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 CREATE 或 SET 上参数化标签和属性吗? (休息和事务) 的相关文章

随机推荐