Neo4j/Cypher - 随机匹配节点

Neo4j/Cypher - Randomly match nodes

我需要为 Neo4j 数据库播种并随机 Persons 加入随机 Organizations。我有以下 Cypher 查询:

MATCH (p:Person), (o:Organization)
WITH p, o
WHERE rand() < 0.1
MERGE (p)-[:MEMBER_OF]->(o)

问题在于此查询为每个人提供了 10% 的机会加入 所有 组织。我怎样才能让这个查询为每个 Persons 和 Organizations 的组合生成一个随机数?

奇怪的是策划者是这样执行的。为了解决这个问题,让我们用每个组合投射出一个随机数并在之后进行过滤:

MATCH (p:Person), (o:Organization)
WITH p, o, rand() as random
WHERE random < 0.1
MERGE (p)-[:MEMBER_OF]->(o)