【问题标题】:Neo4j/Cypher - Randomly match nodesNeo4j/Cypher - 随机匹配节点
【发布时间】:2019-07-12 22:17:40
【问题描述】:

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

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

问题在于,这个查询让每个人都有 10% 的机会加入所有组织。如何让这个查询为Persons 和Organizations 的每个组合生成一个随机数?

【问题讨论】:

    标签: random neo4j cypher seeding


    【解决方案1】:

    计划者以这种方式执行它很奇怪。为了解决这个问题,让我们为每个组合投影一个随机数并在之后进行过滤:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多