javascript - 如何使用 cypher 查询更新 Neo4j 中的关系详细信息?

标签 javascript angularjs neo4j

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/

相关文章:

angularjs - $elem.hide 不是 Angular 数据表中的函数

强制索引的 Neo4j 问题

java - "Unknown error"对所有关系进行密码查询

javascript - 如何在php文件中调用jquery函数

javascript - 在继续之前需要 FineUploader 方法 uploadStoredFiles 完成

javascript - 如何使用 children() 函数选择 child ?

javascript - 如何测试销毁范围

ios - Angularjs http.jsonp iOS9 404

javascript - 如何在没有事件的情况下调用 ember 辛烷模板内的函数?

Neo4j:是否可以基于整数增量创建节点 ID 的替代方案?