from py2neo import Node, Relationship, NodeSelector
from py2neo import Graph
"""
MATCH ( { name: 'alice' })-[r:knows]->(m)-[r1:knows]->(mm)RETURN m.name;
MATCH ( { name: 'alice' })-[r:knows]->(m) RETURN m;
MATCH ( { name: 'bob' })<-[r:knows]-(m) RETURN m.name;
MATCH (p) WHERE p.name = "jj" RETURN p.姓名
# cypher_format0 = 'MATCH ({0}name:{1}{2})-[r1:{3}]->(e1)-[r2:{4}]->(e2) RETURN e1.{5} '
# cypher_format1 = 'MATCH ({0}name:{1}{2})<-[r1:{3}]-(e) RETURN e.{4}' # 反向关系 实体-关系-实体-属性-值
# cypher_format2 = 'MATCH ({0}name:{1}{2})-[r1:{3}]->(e) RETURN e.{4}' # 正向关系 实体-关系-实体-属性-值
# cypher_format3 = 'MATCH (:xygzstp {0}name:{1}{2})<-[r1:{3}]-(e) RETURN e' # 反向关系 实体-关系-实体
# cypher_format4 = 'MATCH (:xygzstp {0}name:{1}{2})-[r1:{3}]->(e) RETURN e' # 正向关系 实体-关系-实体
# cypher_format5 = 'MATCH (e) WHERE e.{0} = {1} RETURN e.{2}' # 反向关系 实体-属性-值
# cypher_format6 = 'MATCH (e:xygzstp) WHERE e.name = {0} RETURN e.{1}' # 正向关系 实体-属性-值
# dic_cypher = {}
# dic_cypher.setdefault('ze1', cypher_format4)
# dic_cypher.setdefault('fe1', cypher_format3)
# dic_cypher.setdefault('za1', cypher_format6)
# cypher = cypher_format.format('{', '\'alice\'', '}', 'knows', 'knows', 'name')
# print(list(neo4j.selectByCQL(cypher)))
"""
class Neo4j(object):
def __init__(self):
# self.graph = Graph("http://localhost:7474", username="neo4j", password="123456")
self.graph = Graph("http://99.12.90.5:7474", username="neo4j", password="neo4j-zh")
self.dic_cypher = {'fe1': 'MATCH (:xygzstp {0}name:{1}{2})<-[r1:{3}]-(e) RETURN e',
'ze1': 'MATCH (:xygzstp {0}name:{1}{2})-[r1:{3}]->(e) RETURN e',
'za1': 'MATCH (e:xygzstp) WHERE e.name = {0} RETURN e.{1}'
}
def selectByCQL(self, cypher):
return self.graph.run(cypher)
def get_cypher(self, key):
return self.dic_cypher.get(key)
neo4j = Neo4j()