创建了一个GraphGist来帮助解释我的问题:
https://gist.github.com/bconneen/e5c66e26883958c81ae6fc5c607fdfa9
考虑以下Neo4J模型:
Applicant(firstName, lastName, uniqueId)
Phone(number)
IpAddress(ip)
BankAccount(routing,account)
Applicant--has->Phone,
Applicant--has->IpAddress,
Applicant--has-->BankAccount
使用merge创建所有节点。因此,如果我们处理100,000个应用程序,则会创建关系,偶尔会有超过1个申请人共享一个或多个Phone,IpAddress,BankAccount。
我希望返回的节点是2个或更多申请者共享2个或更多个电话,IpAddress或BankAccount时。我想编写一个返回所有申请人及其共享关系的查询。符合标准。
示例:
申请人(John Smith)有电话(555-555-5555),有ipAddress(127.0.0.1),有BankAccount(ABCDEF)
申请人(Jane Doe)有电话(222-222-2222,有ipAddress(127.0.0.1),有BankAccount(ABCDEF)
申请人(Steve Zahn)有电话(555-555-5555),有ipAddress(127.2.2.2),有BankAccount(GHJKD)
申请人(James Clay)有电话(444-444-4444),有ipAddress(129.3.3.3),有BankAccount(ZYXWVU)
查询共享2个或更多电话,IpAddress或银行的所有申请人
申请人(John Smith)有电话(555-555-5555),有ipAddress(127.0.0.1),有BankAccount(ABCDEF)
申请人(Jane Doe)有电话(222-222-2222,有ipAddress(127.0.0.1),有BankAccount(ABCDEF)
查询共享一个或多个电话,IpAddress或银行的所有申请人
申请人(John Smith)有电话(555-555-5555),有ipAddress(127.0.0.1),有BankAccount(ABCDEF)
申请人(Jane Doe)有电话(222-222-2222,有ipAddress(127.0.0.1),有BankAccount(ABCDEF)
申请人(Steve Zahn)有电话(555-555-5555),有ipAddress(127.2.2.2),有BankAccount(GHJKD)