如何使用neo4j cypher和java进行批量插入

Hem*_*ema 6 java neo4j cypher spring-data-neo4j

我正在使用每个循环对每个值执行单个插入。

我们如何使用密码查询进行批量插入。

这是我的代码...

控制器

@PostMapping("/geohash")
public Set<String>  create(@RequestParam String name, @RequestBody LatLng[] latLngs) {
    double[][] polygonPoints = convertTo2dArrayOfLatLng(latLngs);
    Set<String> geoHashesForPolygon = GeoHashUtils.geoHashesForPolygon(6, polygonPoints);
    for (String geohash : geoHashesForPolygon) {
        min = Math.min(min, geohash.length());
        geohashes = neoService.create(name, geohash);
    }
    return geoHashesForPolygon;
}
Run Code Online (Sandbox Code Playgroud)

我想将每个插入geoHashesForPolygon为单个节点..

密码查询

@Query("MATCH (c:C) WHERE c.name = {name} CREATE (g: G{name : {geohash}} )<-[:cToG]-(c) RETURN c,g")
public GeohashOfCluster create(@Param("name") String name,@Param("geohash") String geohash);
Run Code Online (Sandbox Code Playgroud)

小智 0

您可以将参数放在列表中并将其展开以创建节点。你的查询就像WITH [{name:'',geohash:''},{name:'',geohash:''},{name:'',geohash:''}] as data UNWIND data as d MATCH (c:C) WHERE c.name = d.name CREATE (g: G{name :d.geohash} )<-[:cToG]-(c) RETURN c,g

希望这可以帮助!