相关疑难解决方法(0)

如何通过Cypher中的属性名称字符串访问和改变节点属性值?

我的目标是在cypher查询访问和改变节点的属性,其中要访问和变异的属性的名称是未知的字符串值.

例如,考虑一个命令:

查找包含两个属性的所有节点,以使第一个属性的名称为小写,后者的名称为前者的大写表示. 然后,使用小写字符串名称将属性的值传播到具有大写名称的属性的值.

特殊情况很简单:

MATCH ( node )
WHERE has(node.age) AND has(node.AGE) AND node.age <> node.AGE
SET node.AGE = node.age
RETURN node;
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到在单个请求中实现一般情况的方法.

具体来说,我无法:

  1. 使用字符串和值访问节点的属性
  2. 使用字符串和值来突变节点的属性

为了清楚起见,我将包括我处理一般情况的尝试.在我未能修改节点属性的情况下,我能够生成一个命令的密码,如果它在后续事务中执行,它将完成我的最终目标.

MERGE ( justToMakeSureOneExists { age: 14, AGE : 140 } ) WITH justToMakeSureOneExists 
MATCH (node) 
WHERE  ANY ( kx IN keys(node) WHERE kx = LOWER(kx) AND ANY ( ky in keys(node) WHERE ky = UPPER(kx) ) )
REMOVE node.name_conflicts // make sure results are current
FOREACH(kx …
Run Code Online (Sandbox Code Playgroud)

reflection neo4j graph-databases cypher

9
推荐指数
1
解决办法
465
查看次数

如何使用值返回节点的所有属性

我正在研究一个瓶子和neo4j的项目.我需要从节点检索所有属性作为dict.像这样的东西

{ '性别': '男', '密码': '$ 2A $ 12 $ fd5KtsMjZHz26goBGcF3/.gZhZUP/6YAP7lRQ8Kf6eB5m69EhB5lS', '邮件': 'xyz@gmail.com', '年龄': '50', '国家': 'US','用户名':'xyz'}

我在寻找答案时偶然发现了这个问题

如何使用Cypher返回节点的所有属性? sugegsted可以将属性名称作为键返回.

在版本2.3.0中,也可以返回值.例如,我有具有这些属性的节点

用户名xyz

发送电子邮件至xyz@gmail.com

50岁

性别男

密码$ 2a $ 12 $ fd5KtsMjZHz26goBGcF3/.gZhZUP/6YAP7lRQ8Kf6eB5m69EhB5lS

如果我在下面的查询中返回n

>>>for record in graph.cypher.execute("MATCH (n:User) WHERE n.username='xyz' RETURN n"):

...         print(record[0])
Run Code Online (Sandbox Code Playgroud)

结果会在前面连续返回(n11:User,所以我无法在没有进一步处理的情况下直接在jinja模板中使用此结果


(N11:用户{年龄: "50",国家: "美国",邮件: "xyz@gmail.com",性别 "男",密码为: "$ 2A $ 12 $ fd5KtsMjZHz26goBGcF3/.gZhZUP/6YAP7lRQ8Kf6eB5m69EhB5lS",用户名: "XYZ"})

如果我使用下面的查询

>>>for record in graph.cypher.execute("MATCH (n:User) WHERE n.username='xyz'
RETURN EXTRACT(key IN keys(n) | {value: n[key], key:key})"):

...         print(record[0])
Run Code Online (Sandbox Code Playgroud)

我得到了这些结果.

[{'value':'xyz @ gmail.com','key':'email'},{'value':'50','key':'age'},{'value':'US', '键': '国家'},{ …

python neo4j flask cypher

3
推荐指数
1
解决办法
2749
查看次数

标签 统计

cypher ×2

neo4j ×2

flask ×1

graph-databases ×1

python ×1

reflection ×1