neo4j - 迭代对象列表并通过对象的属性创建节点 Neo4j

标签 neo4j cypher

我有一个对象列表,这些对象具有不同的属性。

array = [{name: 'Armen', age: 26}, {name: 'Alex', profession: 'Scientist'}]

我需要迭代列表并使用对象提供的属性创建节点。哪一种是最简单且最佳的实践方法?提前致谢!我尝试对列表键和对象键使用展开

WITH array AS nodes 
UNWIND nodes AS node
UNWIND keys(node) AS prop 
WITH node, prop
MERGE (man: Man {prop:node[prop]}) 
RETURN man

但在这种情况下,我为每个属性获得一个节点。

最佳答案

展开 prop 将导致每个属性出现单独的行,这就是它不起作用的原因。您可以将属性保留在一个集合中,如下所示,

WITH [{name: 'Armen', age: 26}, {name: 'Alex', profession: 'Scientist'}] AS nodes 
UNWIND nodes AS node
WITH node, properties(node) as props
MERGE (man:Man {name: props.name}) ON CREATE SET man += props
RETURN man

(我假设name对于所有项目都是通用的)

关于neo4j - 迭代对象列表并通过对象的属性创建节点 Neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69663659/

相关文章:

rest - Neo4J Rest API理解

java - 使用带有自动索引的批量导入器将节点导入 Neo4j

neo4j - 如何在neo4j中按功能使用分组?

Neo4j 3.0.1 SDN 4.1.1.RELEASE 幻像节点

Neo4J Cypher 数据类型转换

python - 使用多个属性键进行 Py2Neo 合并

neo4j - 如何将 csv 文件从 hdfs 加载到 neo4j 数据库中?

sql - 图数据库与关系数据库中表示的图有何不同?

neo4j - 在将值插入 cypher 之前过滤 csvlines

performance - Neo4j 密码查询真的很慢