Neo4j/Cypher - 随机匹配节点
Neo4j/Cypher - Randomly match nodes
我需要为 Neo4j 数据库播种并随机 Person
s 加入随机 Organization
s。我有以下 Cypher 查询:
MATCH (p:Person), (o:Organization)
WITH p, o
WHERE rand() < 0.1
MERGE (p)-[:MEMBER_OF]->(o)
问题在于此查询为每个人提供了 10% 的机会加入 所有 组织。我怎样才能让这个查询为每个 Person
s 和 Organization
s 的组合生成一个随机数?
奇怪的是策划者是这样执行的。为了解决这个问题,让我们用每个组合投射出一个随机数并在之后进行过滤:
MATCH (p:Person), (o:Organization)
WITH p, o, rand() as random
WHERE random < 0.1
MERGE (p)-[:MEMBER_OF]->(o)
我需要为 Neo4j 数据库播种并随机 Person
s 加入随机 Organization
s。我有以下 Cypher 查询:
MATCH (p:Person), (o:Organization)
WITH p, o
WHERE rand() < 0.1
MERGE (p)-[:MEMBER_OF]->(o)
问题在于此查询为每个人提供了 10% 的机会加入 所有 组织。我怎样才能让这个查询为每个 Person
s 和 Organization
s 的组合生成一个随机数?
奇怪的是策划者是这样执行的。为了解决这个问题,让我们用每个组合投射出一个随机数并在之后进行过滤:
MATCH (p:Person), (o:Organization)
WITH p, o, rand() as random
WHERE random < 0.1
MERGE (p)-[:MEMBER_OF]->(o)