代码之家  ›  专栏  ›  技术社区  ›  Cazineer

Neo4j使用具有匹配性能的展开

  •  1
  • Cazineer  · 技术社区  · 8 年前

    尝试创建展开查询以分析列表。正在为列表中的每一行运行匹配查询。有没有办法使匹配查询只运行一次,并在其后使用每行的值?我们尝试了DISTINCT,但失败了。

    UNWIND ${PACBatch} AS row
    MATCH (e:Business {serial_number: row.ownerID})
    CREATE (p:Person {serial_number: row.tempSerial, created: 
    row.rowCreated})
    CREATE (e)-[r:SELLS_ITEM {created: row.rowUpdated}]->(p)
    RETURN p AS PER, r AS OWNS
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Dave Bennett    8 年前

    它假设您只有一个企业。如果每行的业务有所不同,那么编造一些东西就更难了。

    // match the business node
    MATCH (e:Business {serial_number: a_particular_ownerID })
    WITH e
    
    // then bring the business node forward and process each row in the UNWIND
    UNWIND ${PACBatch} AS row
    CREATE (p:Person {serial_number: row.tempSerial, created: row.rowCreated})
    CREATE (e)-[r:SELLS_ITEM {created: row.rowUpdated}]->(p)
    RETURN p AS PER, r AS OWNS