apoc.periodic.commit不会导致更新

时间:2018-09-03 19:39:31

标签: neo4j cypher neo4j-apoc

以下查询将生成10个更新的节点:

MATCH (a:ns3__Organization)-[r:ns4__isDomiciledIn]->(b:Resource)
WITH a,b LIMIT 10
SET a.isDomiciledIn = b.Country

我正在尝试通过以下查询将其应用到apoc.periodic.commit的整个图形中:

CALL apoc.periodic.commit("
MATCH (a:ns3__Organization)-[r:ns4__isDomiciledIn]->(b:Resource)
WITH a,b LIMIT $limit
SET a.isDomiciledIn = b.Country
", { limit : 50000});

以某种方式导致0更新。我在做什么错了?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您应该尝试以下一种方法:

<html>
  <head>
  <!-- Required meta tags -->
  <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

      <!-- Bootstrap CSS -->
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
  <style>
    .active {
    color: red;
    }
    </style>


  </head>

  <body>
      <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
          <a class="navbar-brand" href="#">HTUDelta</a>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
              aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
              <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarSupportedContent">
              <ul class="navbar-nav mr-auto">
                  <li class="nav-item">
                      <a class="nav-link active" href="#">Home
                          <span class="sr-only">(current)</span>
                      </a>
                  </li>
                  <li class="nav-item active">
                      <a class="nav-link" href="#">Users only
                          <span class="sr-only">Users only</span>
                      </a>
                  </li>
                  <li class="nav-item active">
                      <a class="nav-link" href="#">Featchers
                          <span class="sr-only">Upcoming</span>
                      </a>
                  </li>
              </ul>
              <ul class="navbar-nav ml-auto">
                  <li class="nav-item dropdown">
                      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
                          aria-expanded="false">Dropdown </a>
                      <div class="dropdown-menu" aria-labelledby="colourBlindDropDown">
                          <a class="dropdown-item" href="?colour=Trichromacy&set=true">Trichromacy</a>
                          <a class="dropdown-item" href="?colour=Deuteranomaly&set=true">Deuteranomaly</a>
                          <a class="dropdown-item" href="?colour=Protanomaly&set=true">Protanomaly</a>
                          <a class="dropdown-item" href="?colour=Tritanomaly&set=true">Tritanomaly</a>
                          <a class="dropdown-item" href="?colour=Monochromaticy&set=true">Monochromaticy</a>
                          <div class="dropdown-divider"></div>
                      </div>
                  </li>
              </ul>
              <form class="form-inline my-2 my-lg-0">
                  <input class="form-control mr-sm-2" type="text" placeholder="Username" aria-label="Username">
                  <input class="form-control mr-sm-2" type="password" placeholder="Password" aria-label="password">
                  <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Login</button>
              </form>
          </div>
      </nav>
      <!-- Optional JavaScript -->
      <!-- jQuery first, then Popper.js, then Bootstrap JS -->
      <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

  </body>
</html>

您出错:

    查询结束时
  • CALL apoc.periodic.commit(" MATCH (a:ns3__Organization)-[r:ns4__isDomiciledIn]->(b:Resource) WHERE NOT a.isDomiciledIn = b.Country WITH a,b LIMIT $limit SET a.isDomiciledIn = b.Country RETURN count(*) ", { limit : 50000}); 。这样您的查询永无止境
  • 没有count(*)子句将结果过滤到仅尚未更新的节点