遍历对象列表并通过对象 Neo4j 的属性创建节点
Iterate over list of objects and create nodes by properties of objects Neo4j
我有一个对象列表,对象有不同的属性。
array = [{name: 'Armen', age: 26}, {name: 'Alex', profession: 'Scientist'}]
我需要遍历列表并创建具有对象提供的属性的节点。哪种方法最简单、最佳?提前致谢!我尝试对列表键和对象键都使用 unwind
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
对所有项目都是通用的)
如 @aldrin and Cobra from Neo4j Community 所示,我可以使用 SET
添加属性。这是我找到的最简单的方法。
WITH [{name: 'Armen', age: 26}, {name: 'Alex', profession: 'Scientist'}]
AS nodes
UNWIND nodes AS node
CREATE (man:Man)
SET man += node
RETURN man
我将 ID 添加到我的节点,这样我就可以通过一个查询来创建和更新节点。
WITH [{id: 0, name: 'Armen', age: 26}, {id: 1, name: 'Alex', profession: 'Scientist'}] AS nodes
UNWIND nodes AS node
MERGE (man:Man {id: node.id})
SET man += node
RETURN man
我有一个对象列表,对象有不同的属性。
array = [{name: 'Armen', age: 26}, {name: 'Alex', profession: 'Scientist'}]
我需要遍历列表并创建具有对象提供的属性的节点。哪种方法最简单、最佳?提前致谢!我尝试对列表键和对象键都使用 unwind
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
对所有项目都是通用的)
如 @aldrin and Cobra from Neo4j Community 所示,我可以使用 SET
添加属性。这是我找到的最简单的方法。
WITH [{name: 'Armen', age: 26}, {name: 'Alex', profession: 'Scientist'}]
AS nodes
UNWIND nodes AS node
CREATE (man:Man)
SET man += node
RETURN man
我将 ID 添加到我的节点,这样我就可以通过一个查询来创建和更新节点。
WITH [{id: 0, name: 'Armen', age: 26}, {id: 1, name: 'Alex', profession: 'Scientist'}] AS nodes
UNWIND nodes AS node
MERGE (man:Man {id: node.id})
SET man += node
RETURN man