什么是最有效的方式来分解这个创建密码查询?
结束模式如下:
(newTerm:term)-[:HAS_META]->(metaNode:termMeta)在这种模式中,这是一个newTerm节点和大约25个termMeta节点。HAS_META关系将有一个属性(languageCode),该属性对于每个termMeta节点将是不同的。
在应用程序中,所有这些节点和关系都将同时创建。我在试着确定添加它们的最佳方法。
是否可以添加这些内容,而不必对每个TermMeta节点?执行单独的查询。
我知道您可以使用以下查询格式添加多个节点实例:
"metaProps" : [
{"languageCode" : "en", "name" : "1", "dateAdded": "someDate1"},
{"languageCode" : "de", "name" : "2", "dateAdded": "someDate2"},
{"languageCode" : "es", "name" : "3", "dateAdded": "someDate3"},
{"languageCode" : "fr", "name" : "3", "dateAdded": "someDate4"}
]但一次只能对一种类型的节点执行此操作,而且(据我所知)无法动态添加所需的关系属性。
任何洞察力都将不胜感激。
发布于 2014-01-28 09:08:37
据我所知,没有真正优雅的方法可以做到这一点--从您的例子来看,我假设您使用的是参数。您可以使用foreach遍历这些参数并对每个参数进行创建,但这非常难看,需要您显式地指定属性的文字映射。下面是你的例子的样子:
CREATE (newTerm:term)
FOREACH ( props IN {metaProps} |
CREATE newTerm-[:HAS_META {languageCode: props.languageCode}]->
(:termMeta {name: props.name, dateAdded: props.dateAdded})
)
WITH newTerm
MATCH newTerm-[rel:HAS_META]->(metaNode:termMeta)
RETURN newTerm, rel, metaNode如果不需要返回结果,则可以在FOREACH之后删除所有内容。
发布于 2020-10-13 22:29:15
选择并命名每个顶点,然后使用它创建关系。对于ex
match (n:Tag), (m:Account), (l:FOO) CREATE (n)-[r:mn]->(m),(m)-[x:ml]->(l)match (n:Tag{a:"a"}), (m:Account{b:"x"}), (l:FOO) CREATE (n)-[r:mn]->(m),(m)-[x:ml]->(l)https://stackoverflow.com/questions/21395931
复制相似问题