neo4j在使用可变长路径找两个点之前的所有路径时,会返回包含环路的路径(一个点在路径中出现两次),如下面的语句: MATCH path = (x)-[:KNOWS*]-(y) 可能返回a->b->c->d->b->e这样的路径,如图: 解决方法: 纯cypher实现 MATCH path = (x)-[:KNOWS*]-(y) UNWIND NODES(path) AS n WITH path, SIZE(COLLECT(DISTINCT n)) AS testLength…
总结一下经验: neo4j中,cypher语句的模糊查询,好像是个正则表达式结构. 对于一个属性的多个模糊查询,可以使用如下写法: 比如,查询N类型中,属性attr包含'a1'或者'a2'的所有节点. match (n:N) where n.attr =~ '.*a1.*|.*a2.*' return n 相对于另外一种写法 match (n:N) where n.attr =~ '.*a1.*' or n.attr =~ '.*a2.*' return n 使用explain,也可以查看出,…
阅读更多 1.删除带有关系的节点 a.先删除关系 match (n:Node)-[r:关系名称]-() where (n...条件) delete r b.删除节点 match (n:Node) where (n...条件) delete n 2.批量更新 :param batch:[{prop1:'property1',prop2:'property2'},{prop1:'property11',prop2:'property22'}] UNWIND $batch as dat…