删除节点属性:
match (n:测试123) where n.code='123' REMOVE n.name
新增label
create(n:fgffdsd{name:'dddd'})
查询某个节点
match(n:测试123) where n.code='123' return n
查询某个label所有节点
match(n:测试123) return n
查询某个节点所有的关系节点
match p=(n:测试123)-[]-() return p
查询所有的节点直接的关系
match p=()-[]-() return p
带方向查询所有节点
match p=()-[]->() return p
查询出两个节点然后添加关系
match(n:test123) where n.code='123'
match(m:test345) where m.code='345'
create(n)-[r:role{name:'同事'}]->(m)
MATCH(n:tupu1bb26267a36140528800d041a6ced5bc) where n.code='e6e92167-6fed-4d01-9de6-78a8bb59a375'
MATCH(f:tupu1bb26267a36140528800d041a6ced5bc) where f.code='5fe2854f-870b-413a-ad85-8dae8f16e0a9'
create(n)-[J:Lddd]->(q:dddd)-[H:ddd]->(f)
MATCH (n:tupu1bb26267a36140528800d041a6ced5bc{code:'e6e92167-6fed-4d01-9de6-78a8bb59a375'})-[]-(m)-[]-(f:tupu1bb26267a36140528800d041a6ced5bc{code:'5fe2854f-870b-413a-ad85-8dae8f16e0a9'}) return m
CALL apoc.cypher.run("
MATCH p=(a:tupu1bb26267a36140528800d041a6ced5bc)--() return p LIMIT 100
UNION
MATCH p=(n:tupu1bb26267a36140528800d041a6ced5bc) return p LIMIT 100
",{}) yield value
return value.p
limit 100
修改属性标签
code1为新属性标签
code为老属性标签
match(n:FSD) set n.code1=n.code remove n.code
修改属性值
match(n:FSD) where n.code1='123' set n.name='张三'
修改标签
match (n:FSD)
remove n:FSD
set n:FSD123
查询没有关系的节点
match (n) where not(n)-[]-() return n
多标签写法
添加:
create(n:WWWED:DDFFFS:gggggg{name:'张杀杀杀'})
查询
match(n:WWWED:DDFFFS:gggggg) where n.name='张杀杀杀' return n
批量清空后添加属性(节点)
MATCH (n:`刘伟豪1`) SET n={title:"刑事案件性质代字",name:"dssdsd",age:12} RETURN n
批量清空后添加属性(关系)
MATCH p=()-[r:`刑事案件性质代字`]->() SET r={title:"刑事案件性质代字"} RETURN p
模糊查询
https:
MATCH (person:Person)
MERGE (city:City { name: person.bornIn })
MERGE (person)-[r:BORN_IN]->(city)
RETURN person.name, person.bornIn, city
MERGE (keanu:Person { name: 'Keanu Reeves' })
ON CREATE SET keanu.created = timestamp()
ON MATCH SET keanu.lastSeen = timestamp()
RETURN keanu.name, keanu.created, keanu.lastSeen
match (a),(b) where id(a)=25 and id(b)=8
merge (a)-[r:gogogo]->(b)
on create set r.w = 1
on match set r.w = 100
return a,b,r
match (a),(b) where id(a)=25 and id(b)=8
merge (a)-[r:gogogo]->(b)
on create set r.w = 1
on match set r.w = coalesce(r.w, 0) + 1
return a,b,r
merge(n:GGGFF{name:'张三'}) 存在则不创建,不存在则创建
merge(m:HHHH{name:'李四'}) 存在则不创建,不存在则创建
merge(n)-[r:DDDDD]->(m) 存在则不创建,不存在则创建
查询节点属性key
MATCH (n:Person{name:'Ernesto'}) RETURN keys(n)
MATCH (n) OPTIONAL MATCH (n)-[r]-() RETURN distinct keys(n), keys(r)
如果一次性多个修改语句需要创建事务最后提交整体事务
Transaction transaction = session.beginTransaction();
transaction.run("match(n:"+label+")-[r]-() where n.nodeTypeCommon=$nodeTypeCommon and n.code=$code delete r", parameters("nodeTypeCommon", nodeTypeCommon,"code",code));
transaction.run("MATCH (n:"+label+") where n.nodeTypeCommon=$nodeTypeCommon and n.code=$code WITH n, [k in keys(n) where not k in [\"code\",\"nodeTypeCommon\"]] as keys CALL apoc.create.removeProperties(n, keys) YIELD node RETURN count(*)", parameters("nodeTypeCommon", nodeTypeCommon,"code",code));
transaction.run("MATCH (n:"+label+") where n.nodeTypeCommon=$nodeTypeCommon and n.code=$code SET n="+values+" RETURN n", parameters("nodeTypeCommon", nodeTypeCommon,"code",code));
for(int i =0;i<relationship.size();i++){
String relationshipAttr = relationship.getJSONObject(i).getStr("relationshipAttribute");
String startCode = relationship.getJSONObject(i).getStr("startCode");
String endCode = relationship.getJSONObject(i).getStr("endCode");
String relationshipAttribute = relationshipAttr.replaceAll("\"(\\w+)\"(\\s*:\\s*)", "$1$2");
transaction.run("MATCH (n) WHERE n.code = $startCode and n.nodeTypeCommon=$nodeTypeCommon \n" +
"MATCH (m) WHERE m.code = $endCode and m.nodeTypeCommon=$nodeTypeCommon \n" +
"create(n)-[r:relationship"+relationshipAttribute+"]->(m)"
, parameters("startCode", startCode,"endCode",endCode,"nodeTypeCommon",nodeTypeCommon));
}
transaction.commit();