我正在尝试从Neo4j浏览器运行查询,以重现来自我的Neo4j-Javascript-Driver客户机的结果。
在Neo4j中定义查询参数的语法是什么?
最近我参加了纽约市的一次Neo4j培训课程,讲师David Fauth做了这个演示。不幸的是,我没有记录下来,因为我认为我可以在网上找到相关资料,但没有成功。
我正在尝试从Neo4j浏览器运行查询,以重现来自我的Neo4j-Javascript-Driver客户机的结果。
在Neo4j中定义查询参数的语法是什么?
最近我参加了纽约市的一次Neo4j培训课程,讲师David Fauth做了这个演示。不幸的是,我没有记录下来,因为我认为我可以在网上找到相关资料,但没有成功。
在 neo4j-browser 中,您需要输入例如:
:params {nodes: [{name: "John", age: 18}, {name: "Phill", age: 23}]}
然后您可以像平常一样使用 params:
UNWIND {nodes} as node
MERGE (A:User {name: node.name, age: node.age})
RETURN A
若要在neo4j浏览器中清除参数,请键入:params {}
。
若需要其他帮助,请键入:help params
。
:param name: value
,其中 value 可以是任何有效的 JSON。 - Michael Hunger:params {"uidLeft": "asdf1", "uidRight": "asdf2", "type": "KNOWS", props:{uid:"rel1"}}
- Clintm在Neo4j-3.3.4中,Cypher查询类似于这样:
:param nodes: [{name: 'John', age: 18}, {name: 'Phill', age: 23}]
Neo4j浏览器结果: 此处
params
看起来像是一个足部炮。 - Cerberus:param name => expression
表达式必须保持在一行中。
表达式可以是标量或列表:
:param foo => ['a', 'b', 'c']
在Neo4j 4.1版本中,地图不能直接使用该语法。您可以将它们包装成一个列表:
:param foo => [{name: 'Alice', age: 38, address: {city: 'London', residential: true}}]
或者你可以使用:params
:
:params {foo: {name: 'Alice', age: 38, address: {city: 'London', residential: true}}}
:param foo => [{name: 'Alice', age: 38, address: {city: 'London', residential: true}}]
。我已更新答案。感谢您指出这一点! - Dima Korobskiy基本情况:
:param mytext => "Hello"
:param attr => ({ oid: 1, text: "Hello" })
Cypher用法:
MATCH (x) WHERE x.a = $mytext RETURN x
MATCH (x) WHERE x.a = $attr.oid SET x.b = $attr.text
MATCH (x) WHERE ... SET x = $attr
:params param_name => 'param_value'