Random Neo4j/Cypher-随机匹配节点

Random Neo4j/Cypher-随机匹配节点,random,neo4j,cypher,seeding,Random,Neo4j,Cypher,Seeding,我需要建立一个Neo4j数据库,让randomPersons加入randomOrganizations。我有以下密码查询: MATCH (p:Person), (o:Organization) WITH p, o WHERE rand() < 0.1 MERGE (p)-[:MEMBER_OF]->(o) 匹配(p:个人),(o:组织) 用p,o 其中rand()小于0.1 合并(p)-[:成员]->(o) 问题是,此查询使每个人有10%的机会加入所有组织。我怎样才能让这个查询为

我需要建立一个Neo4j数据库,让random
Person
s加入random
Organization
s。我有以下密码查询:

MATCH (p:Person), (o:Organization)
WITH p, o
WHERE rand() < 0.1
MERGE (p)-[:MEMBER_OF]->(o)
匹配(p:个人),(o:组织)
用p,o
其中rand()小于0.1
合并(p)-[:成员]->(o)

问题是,此查询使每个人有10%的机会加入所有组织。我怎样才能让这个查询为
人员
组织
的每个组合生成一个随机数?

奇怪的是,计划员是这样执行的。要解决此问题,让我们用每个组合投影出一个随机数,然后进行过滤:

MATCH (p:Person), (o:Organization)
WITH p, o, rand() as random
WHERE random < 0.1
MERGE (p)-[:MEMBER_OF]->(o)
匹配(p:个人),(o:组织)
p,o,rand()是随机的
其中random<0.1
合并(p)-[:成员]->(o)

很奇怪,计划者是这样执行的。要解决此问题,让我们用每个组合投影出一个随机数,然后进行过滤:

MATCH (p:Person), (o:Organization)
WITH p, o, rand() as random
WHERE random < 0.1
MERGE (p)-[:MEMBER_OF]->(o)
匹配(p:个人),(o:组织)
p,o,rand()是随机的
其中random<0.1
合并(p)-[:成员]->(o)