python 查询Neo4j多节点的多层关系

系统 1455 0

需求:查询出满足3人及3案有关系的集合

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               py2neo 
              
                import
              
               Graph

              
                import
              
               psycopg2


              
                # 二维数组查找
              
              
                def
              
              
                find
              
              
                (
              
              target
              
                ,
              
               array
              
                )
              
              
                :
              
              
                for
              
               i
              
                ,
              
               val 
              
                in
              
              
                enumerate
              
              
                (
              
              array
              
                )
              
              
                :
              
              
                for
              
               j
              
                ,
              
               temp 
              
                in
              
              
                enumerate
              
              
                (
              
              val
              
                )
              
              
                :
              
              
                if
              
               temp 
              
                ==
              
               target
              
                :
              
              
                return
              
              
                True
              
              
                ;
              
              
                return
              
              
                False
              
              


graph 
              
                =
              
               Graph
              
                (
              
              host
              
                =
              
              
                "192.168.3.186://7474"
              
              
                ,
              
               auth
              
                =
              
              
                (
              
              
                "neo4j"
              
              
                ,
              
              
                "wabjtam123"
              
              
                )
              
              
                )
              
              
data 
              
                =
              
               graph
              
                .
              
              run
              
                (
              
              
                'match data=(p:anjian)-[:参与 *2..5]-(u:anjian) with p,collect( distinct u.AJBH) as ajbhs match (p:anjian)-[:参与 *1..5]-(c:xyr) with p,ajbhs, collect(distinct c.XYRBH) as xyrbh_list,(ajbhs+p.AJBH) as ajbh_list where size(xyrbh_list)>2 and size(ajbh_list)>2 return p.AJBH as ajbh,ajbh_list,xyrbh_list'
              
              
                )
              
              

aj 
              
                =
              
              
                [
              
              
                ]
              
              

xyr_result 
              
                =
              
              
                [
              
              
                ]
              
              
aj_result 
              
                =
              
              
                [
              
              
                ]
              
              
                for
              
               node 
              
                in
              
               data
              
                :
              
              
    ajbh 
              
                =
              
               node
              
                .
              
              get
              
                (
              
              
                'ajbh'
              
              
                )
              
              
    ajbh_list 
              
                =
              
               node
              
                .
              
              get
              
                (
              
              
                'ajbh_list'
              
              
                )
              
              
    xyrbh_list 
              
                =
              
               node
              
                .
              
              get
              
                (
              
              
                'xyrbh_list'
              
              
                )
              
              
    
    ajbh_list
              
                .
              
              append
              
                (
              
              ajbh
              
                )
              
              
    
    ajbh_list 
              
                =
              
              
                list
              
              
                (
              
              
                set
              
              
                (
              
              node
              
                .
              
              get
              
                (
              
              
                'ajbh_list'
              
              
                )
              
              
                )
              
              
                )
              
              
    xyrbh_list 
              
                =
              
              
                list
              
              
                (
              
              
                set
              
              
                (
              
              node
              
                .
              
              get
              
                (
              
              
                'xyrbh_list'
              
              
                )
              
              
                )
              
              
                )
              
              
    
    flag 
              
                =
              
              
                True
              
              
                if
              
              
                len
              
              
                (
              
              aj_result
              
                )
              
              
                >
              
              
                0
              
              
                :
              
              
                for
              
               i
              
                ,
              
               val 
              
                in
              
              
                enumerate
              
              
                (
              
              ajbh_list
              
                )
              
              
                :
              
               
            f 
              
                =
              
               find
              
                (
              
              val
              
                ,
              
               aj_result
              
                )
              
              
                if
              
               f
              
                :
              
              
                flag 
              
                =
              
              
                False
              
              
                break
              
              
                ;
              
              
                if
              
               flag
              
                :
              
              
                if
              
              
                len
              
              
                (
              
              ajbh_list
              
                )
              
              
                >
              
              
                2
              
              
                and
              
              
                len
              
              
                (
              
              xyrbh_list
              
                )
              
              
                >
              
              
                2
              
              
                :
              
              
            aj
              
                .
              
              append
              
                (
              
              ajbh
              
                )
              
               
            
            
            aj_result
              
                .
              
              append
              
                (
              
              ajbh_list
              
                )
              
               
            xyr_result
              
                .
              
              append
              
                (
              
              xyrbh_list
              
                )
              
              
                print
              
              
                (
              
              
                'MATCH p=(:anjian{AJBH:"'
              
              
                +
              
              ajbh
              
                +
              
              
                '"})-[*]-() RETURN p LIMIT 25'
              
              
                )
              
              
            name 
              
                =
              
              
                str
              
              
                (
              
              
                len
              
              
                (
              
              xyrbh_list
              
                )
              
              
                )
              
              
                +
              
              
                "人"
              
              
                +
              
              
                str
              
              
                (
              
              
                len
              
              
                (
              
              ajbh_list
              
                )
              
              
                )
              
              
                +
              
              
                "案"
              
              
                print
              
              
                (
              
              name
              
                )
              
              
                print
              
              
                (
              
              
                len
              
              
                (
              
              aj_result
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              aj
              
                )
              
              
                print
              
              
                (
              
              
                '----------------------------'
              
              
                )
              
              
                print
              
              
                (
              
              aj_result
              
                )
              
              

conn 
              
                =
              
               psycopg2
              
                .
              
              connect
              
                (
              
              database
              
                =
              
              
                "zfgfh"
              
              
                ,
              
               user
              
                =
              
              
                "postgres"
              
              
                ,
              
               password
              
                =
              
              
                "postgres"
              
              
                ,
              
               host
              
                =
              
              
                "192.168.3.202"
              
              
                ,
              
               port
              
                =
              
              
                "5432"
              
              
                )
              
              
cursor 
              
                =
              
               conn
              
                .
              
              cursor
              
                (
              
              
                )
              
              
                for
              
               ajbh 
              
                in
              
               aj_result
              
                :
              
              
                for
              
               temp 
              
                in
              
               ajbh
              
                :
              
              
        insert_sql 
              
                =
              
              
                "insert into test.gm (\"ajbh\") values ('%s')"
              
              
        insert_sql 
              
                =
              
               insert_sql 
              
                %
              
               temp
        
              
                print
              
              
                (
              
              insert_sql
              
                )
              
              
                # 插入
              
              
        cursor
              
                .
              
              execute
              
                (
              
              insert_sql
              
                )
              
              
                # 提交
              
              
conn
              
                .
              
              commit
              
                (
              
              
                )
              
               
cursor
              
                .
              
              close
              
                (
              
              
                )
              
              
                # 关闭Cursor
              
              
conn
              
                .
              
              close
              
                (
              
              
                )
              
              
                # 关闭数据库
              
            
          

python 查询Neo4j多节点的多层关系_第1张图片

            
              6人3案
4人5案
3人6案
11人3案
3人13案
6人46案
8人4案
5人4案
7人4案
28人17案
4人4案
3人8案
4人4案
8人3案
6人6案
5人4案
4人6案
19人77案
4人22案
4人14案
4人5案
9人5案
12人8案
4人3案
17人4案
5人7案
18人30案
7人11案
3人22案
20人12案
30
['A2301260500002019020002', 'A2301096000002018040010', 'A2301246400002018060001', 'A2301270500002018040003', 'A2301085100002018100001', 'A2301062020012018100099', 'A2301830517002018090003', 'A2301290501002019040001', 'A2301240500002018080001', 'A2301260200002018090006', 'A2301821414022018011647', 'A2301000514012018090001', 'A2301245100002018050014', 'A2301004908002018110004', 'A2301295500002018110005', 'A2301270300002018090005', 'A2301848900002018070017', 'A2301210504002018080011', 'A2301004902002018110002', 'A2301810500002018110038', 'A2301025103002018120002', 'A2301290500002019020003', 'A2301096000002018060043', 'A2301260200002018060002', 'A2301810500002018090002', 'A2301815100002018060014', 'A2301820506002018070006', 'A2301037200002018100154', 'A2301849000002018090001', 'A2301280200002018110002']
----------------------------
['A2301260500002019030006', 'A2301260500002019030007', 'A2301260500002019020002']
['A2301095200002018060039', 'A2301096000002018050002', 'A2301096000002018060009', 'A2301095200002018070016', 'A2301096000002018040010']
['A2301246400002018050003', 'A2301245200002018060007', 'A2301236400002018060005', 'A2301245200002018060003', 'A2301246400002018060002', 'A2301246400002018060001']
['A2301270500002018040003', 'A2301270500002018040004', 'A2301270500002018040005']
['A2301080506002018120002', 'A2301080506002018120001', 'A2301080506002018120011', 'A2301080506002018120004', 'A2301080506002018120010', 'A2301080506002018120013', 'A2301080506002018120005', 'A2301085100002018100001', 'A2301080506002018120012', 'A2301080506002018120007', 'A2301080506002018120006', 'A2301080506002018120003', 'A2301080506002018120009']
['A2301060504002018110006', 'A2301060504002018110005', 'A2301060504002018110028', 'A2301060504002018110026', 'A2301060504002018110036', 'A2301060504002018110035', 'A2301060504002018110030', 'A2301060504002018110003', 'A2301061723042018103961', 'A2301060504002018110024', 'A2301060504002018110004', 'A2301060504002018110025', 'A2301060504002018110044', 'A2301063010412018100861', 'A2301060504002018110022', 'A2301060504002018110031', 'A2301060504002018110038', 'A2301060504002018110007', 'A2301060504002018110032', 'A2301060504002018110009', 'A2301060504002018110039', 'A2301063011482018102790', 'A2301060504002018110029', 'A2301060504002018110021', 'A2301060504002018100001', 'A2301060504002018110015', 'A2301060504002018110043', 'A2301062020012018100099', 'A2301060504002018110011', 'A2301060504002018110040', 'A2301060504002018110023', 'A2301060504002018110027', 'A2301060504002018110037', 'A2301060504002018110014', 'A2301060504002018110033', 'A2301060504002018110002', 'A2301060504002018110041', 'A2301060504002018110008', 'A2301060504002018110001', 'A2301060504002018110010', 'A2301060504002018100002', 'A2301060504002018110019', 'A2301060504002018120004', 'A2301060504002018110018', 'A2301060504002018110020', 'A2301060504002018110034']
['A2301830517002018090003', 'A2301830517002018090005', 'A2301830517002018090006', 'A2301830517002018090004']
['A2301290501002019040001', 'A2301290501002019040002', 'A2301290501002019030002', 'A2301290501002019040004']
['A2301240500002018080001', 'A2301240500002018080004', 'A2301240500002018080003', 'A2301240500002018080002']
['A2301260200002018100006', 'A2301260200002018090002', 'A2301260200002018100013', 'A2301260200002018100008', 'A2301260200002018090006', 'A2301260200002018100003', 'A2301260200002018100001', 'A2301260200002018100010', 'A2301260200002018100005', 'A2301260200002018100012', 'A2301260200002018100002', 'A2301260200002018090004', 'A2301260200002018100011', 'A2301260200002018090003', 'A2301260200002018100014', 'A2301260200002018090005', 'A2301260200002018100007']
['A2323037100002018120006', 'A2301827600002018090005', 'A2301821414022018011647', 'A2301820209332018024067']
['A2301000514012018090001', 'A2301230500002018060001', 'A2301000514012018110004', 'A2301230300002018110005', 'A2301230500002018050005', 'A2301000514012019010001', 'A2301000514012018090002', 'A2301000514012018100001']
['A2301245100002018050014', 'A2301245100002018070018', 'A2301286100002018050005', 'A2301286100002018060002']
['A2303016200002018100001', 'A2301004908002018110004', 'A2301004908002018110006']
['A2301295500002018110008', 'A2301295500002018110006', 'A2301295500002018110003', 'A2301295500002018110007', 'A2301295500002018110005', 'A2301002104002018100007']
['A2301270300002018100004', 'A2301270300002018100002', 'A2301270300002018100001', 'A2301270300002018090005']
['A2301848900002018070017', 'A2301845700002018070027', 'A2301840502002018070002', 'A2301848800002018070024', 'A2301840502002018070003', 'A2301840502002018070001']
['A2301210504002018120003', 'A2301210504002018120019', 'A2301210504002018120013', 'A2301210504002018080007', 'A2301210504002018080021', 'A2301210504002018080015', 'A2301210504002018120017', 'A2301210504002018120045', 'A2301210504002018080014', 'A2301210504002018120049', 'A2301210504002018080019', 'A2301210504002018120028', 'A2301210504002018080004', 'A2301210504002018120029', 'A2301210504002018120051', 'A2301210504002018110005', 'A2301210504002018120023', 'A2301210504002018120043', 'A2301210504002018120044', 'A2301210504002018120041', 'A2301210504002018120014', 'A2301210504002018120032', 'A2301210504002018080003', 'A2301210504002018110006', 'A2301210504002018080009', 'A2301210504002018110004', 'A2301210504002018110003', 'A2301210504002018120038', 'A2301210504002018120039', 'A2301210504002018120015', 'A2301210504002018120011', 'A2301210504002018120036', 'A2301210504002018080010', 'A2301210504002018120048', 'A2301210504002018120025', 'A2301210504002018120006', 'A2301210504002018120012', 'A2301210504002018080013', 'A2301210504002018120022', 'A2301210504002018080017', 'A2301210504002018120008', 'A2301210504002018120046', 'A2301210504002018120052', 'A2301210504002018110007', 'A2301210504002018120024', 'A2301210504002018080022', 'A2301210504002018080005', 'A2301210504002018120050', 'A2301210504002018080002', 'A2301210504002018120009', 'A2301210504002018120031', 'A2301210504002018120033', 'A2301210504002018120042', 'A2301210504002018120035', 'A2301210504002018120040', 'A2301210504002018120026', 'A2301210504002018120005', 'A2301210504002018120030', 'A2301210504002018120027', 'A2301210504002018120018', 'A2301210504002018120010', 'A2301210504002018120016', 'A2301210504002018120002', 'A2301210504002018120001', 'A2301210504002018120034', 'A2301210504002018120007', 'A2301210504002018120037', 'A2301210504002018120004', 'A2301210504002018080008', 'A2301210504002018080011', 'A2301210504002018080018', 'A2301210504002018120021', 'A2301210504002018080020', 'A2301210504002018120047', 'A2301210504002018080006', 'A2301210504002018120020', 'A2301210504002018080016']
['A2301004906002019010005', 'A2301004902002018120001', 'A2301004902002018100006', 'A2301004908002018110002', 'A2301004902002018110002', 'A2301004906002019010003', 'A2301004904002019010003', 'A2301004908002019010002', 'A2301004902002018110003', 'A2301004908002019010004', 'A2301004908002018110001', 'A2301004905002019010008', 'A2301004904002018100004', 'A2301004908002019010005', 'A2301004904002019010004', 'A2301004909002019010001', 'A2301004905002019010007', 'A2301004908002019010003', 'A2301004904002019010002', 'A2301004908002018100002', 'A2301004902002018110001', 'A2301004906002019010004']
['A2301810500002018120044', 'A2301810500002018110039', 'A2301810500002018110041', 'A2301810500002018120034', 'A2301810500002018120055', 'A2301810500002018120052', 'A2301810500002018120053', 'A2301810500002018120032', 'A2301810500002018110038', 'A2301810500002018120054', 'A2301810500002018120035', 'A2301810500002018110040', 'A2301810500002018120033', 'A2301810500002018120056']
['A2301025103002019010002', 'A2301025103002018120002', 'A2301025103002018120004', 'A2301025103002018120005', 'A2301025103002019010001']
['A2301290500002019020004', 'A2301293014052013074923', 'A2301292809352016111088', 'A2301290500002019020003', 'A2301290500002019030001']
['A2301090506002018090006', 'A2301096000002018060044', 'A2301090506002018090002', 'A2301090506002018090004', 'A2301096000002018060045', 'A2301090506002018090005', 'A2301090506002018090003', 'A2301096000002018060043']
['A2301260200002018070019', 'A2301260200002018060002', 'A2301260200002018070001']
['A2301810500002018100008', 'A2301810500002018090002', 'A2301810500002018070015', 'A2301810500002018100006']
['A2301815100002018060014', 'A2301847300002018070003', 'A2301837900002018060010', 'A2301847300002018070002', 'A2301835600002018060007', 'A2301815500002018050010', 'A2301817900002018060001']
['A2301820502002018120006', 'A2301820502002019020003', 'A2301820502002018110004', 'A2301820502002018120003', 'A2301820502002018120014', 'A2301820502002018120001', 'A2301820502002018120002', 'A2301820502002018110005', 'A2301820502002018110007', 'A2301820502002018110010', 'A2301820502002018110002', 'A2301820506002018070006', 'A2301820502002018120004', 'A2301820502002018120009', 'A2301820502002018110012', 'A2301820502002018110014', 'A2301820502002018110013', 'A2301820502002018110011', 'A2301820502002019020002', 'A2301820502002018120005', 'A2301820502002018110006', 'A2301820502002019010001', 'A2301820502002018120013', 'A2301820502002019020001', 'A2301820502002018110009', 'A2301820502002018110008', 'A2301820502002018120011', 'A2301820502002018120010', 'A2301820502002018110001', 'A2301820502002018110003']
['A2301025600002018120006', 'A2301031714062013011545', 'A2301037200002018100154', 'A2301025700002018120027', 'A2301032513122013013630', 'A2301025700002018120050', 'A2301025600002018120051', 'A2301032816032012120005', 'A2301030916252013014087', 'A2301026600002018120008', 'A2301025600002018120044']
['A2323015500002018100003', 'A2301849000002018090018', 'A2323015700002018100005', 'A2301848700002018090013', 'A2323015500002018100004', 'A2301849000002018090001', 'A2301265300002018090007', 'A2301845700002018090004', 'A2301265500002018090005', 'A2301845700002018090019', 'A2323015700002018100004', 'A2301265300002018090006', 'A2323016100002018100003', 'A2301849000002018090008', 'A2301265300002018090011', 'A2301265300002018090005', 'A2301849000002018090019', 'A2301265500002018090006', 'A2301265300002018090010', 'A2301265300002018090009', 'A2301265300002018090008', 'A2301848700002018090006']
['A2301280200002018110003', 'A2301280200002018110011', 'A2301280200002018110013', 'A2301280200002018110005', 'A2301280200002018110010', 'A2301280200002018110007', 'A2301280200002018110012', 'A2301280200002018110002', 'A2301280200002018110008', 'A2301280200002018110009', 'A2301280200002018110014', 'A2301280200002018110006']

            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论