gpt4 book ai didi

random - 编写一个 Cypher 查询来创建随机节点之间的链接

转载 作者:行者123 更新时间:2023-12-05 00:21:02 26 4
gpt4 key购买 nike

要播种数据库,我想创建一小组 Person 节点...

WITH ["Amy","Bob","Cal","Dan","Eve"]
AS names
FOREACH (r IN range(0, size(names)-1) |
CREATE (:Person {name: names[r]})
)

...我想为每个人创建一个随机连接。是否可以在单个查询中执行此操作?

我想我需要将每个新 Person 添加到一个集合中,并使用从 FLOOR(RAND() * size(names)) 创建的变量,但官方文档没有提供很多关于如何执行此操作的线索。

最佳答案

好问题!

有几件事,首先我经常更喜欢UNWINDFOREACH ,特别是在这样的情况下:

WITH ["Amy","Bob","Cal","Dan","Eve"] AS names
UNWIND names AS name
CREATE (:Person {name: name})

至于创建随机关系,Michael Hunger 有一篇很好的博客文章介绍了它:

http://jexp.de/blog/2014/03/quickly-create-a-100k-neo4j-graph-data-model-with-cypher-only/

在你的情况下,它会是这样的:
MATCH (p1:Person), (p2:Person)
WITH p1, p2
WHERE rand() < 0.1
MERGE p1-[:LIKES]->p2

作为第一个 MATCH 小心点指定所有人与所有其他人的完整笛卡尔积,可以快速增长为您的 Person节点增长。迈克尔放了一个 LIMIT在他的 WITH在文中

关于random - 编写一个 Cypher 查询来创建随机节点之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32621407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com