【发布时间】:2021-09-14 22:35:06
【问题描述】:
我有三个对象数组,如下所示:
const org = [
{
id: "orgId1",
name: "first organization"
},
{
id: "orgId2",
name: "second organization"
}
]
const location = [
{
id: "loc1",
name: "Texas"
},
{
id: "loc2",
name: "New York"
}
]
const contacts = [
{
id: "contact1",
name: "James"
},
{
id: "contact2",
name: "John"
}
]
在它们之间添加关系的最佳方式是什么?请注意,数组的长度相同。
我需要一个 Cypher 查询,它可以遍历从 0 到 orgs.length 的范围,并在 i 处添加每个元素之间的对应关系。例如 org[i]、contacts[i]、location[i]
我尝试了以下方法,但它给了我一个爆炸性的组合,其中第一个组织映射到位置数组和联系人数组中的所有条目,而我想要的是一对一映射。
UNWIND $orgs as orgs
UNWIND $locations as locs
UNWIND $contacts as contacts
FOREACH (i IN range(0, size(orgs) - 1)
| MERGE (:Organization { id: orgs[i].id })-[r:LOCATED_AT]->(:Location {id: locs[i].id})
| MERGE (:Organization { id: orgs[i].id })-[r:CONTACT_AT]->(:Contact {id: contacts[i].id})
)
任何帮助将不胜感激。提前致谢。
【问题讨论】: