繁体   English   中英

我可以在CREATE或SET上参数化标签和属性吗? (REST和交易)

[英]Can I parameterize labels and properties on CREATE or SET? (REST and transaction)

我有一个问题

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”吗? 它给了我'参数贴图不能用于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节点= {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: http//docs.neo4j.org/chunked/snapshot/cypher-parameters.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM