data= {
"id": 1,
"name": "samuel",
"Manager": [
{
"id": "",
"name": "manager1",
"approvers": [325,134],
}
]
}
对于这个数据对象,我们使用 Neo4j 中类似的给定密码查询执行了添加函数
query = "CREATE CONSTRAINT ON (users:user) ASSERT users.name IS UNIQUE";
return cypher(
{
"query": query
}
).then(function () {
query = "CREATE (user:user{ name:"samuel "})
"RETURN user";
action = "create";
return cypher(
{
"query": query,
});
}).then(function (data) {
userId = data[0].user._id;
return Promise.each(data.manager, function (entry) {
query = "MATCH (user: user) WHERE id(user) = " + userId + " " +
" OPTIONAL MATCH (managerApprovers:user) WHERE id(managerApprovers) IN [325,134] " +
"CREATE (manager: managernode {name: "manager1"})<-[:HAS_MANAGER]-(user) " +
"FOREACH (a IN CASE WHEN managerApprovers IS NOT NULL THEN [managerApprovers] ELSE [] END | " +
"CREATE (managerApprovers)<-[:HAS_MANAGE_APPROVER]-(managernode)) RETURN user,managernode";
return cypher(
{
"query": query,
}).then(function (data) {
{
res.action = action;
res.result = data;
return res;
});
}
如果我们想要更新用户名以及更新经理详细信息和关系 HAS_MANAGE_APPROVER、HAS_MANAGER 在 Neo4j 中如何执行
最佳答案
您必须MATCH
关系,将其存储在变量中,然后SET
您想要的属性:
Match (a:firstNode)-[relation:MY_RELATIONSHIP]->(b:secondNode)
SET relation.variable="Foo"
请记住,不建议使用 neo4j 内部 ID,请参阅 Should we use the Neo4J internal id?
关于javascript - 如何使用 cypher 查询更新 Neo4j 中的关系详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38988508/