这个密码查询如何选择一个随机节点?

时间:2017-01-17 15:32:30

标签: neo4j cypher

我正在开发一个使用Node.js,Cypher和Neo4j的项目。该项目的前端偶尔需要快速拉随机用户。我在互联网上看到了这个问题:

MATCH (n:User) WHERE rand() < 0.1 RETURN n LIMIT 21

但我不知道这是做什么的。它似乎很快,但我想理解它。我所知道的细分:

MATCH    | Match some nodes
(n:User) | Let's call this node n, and it has to be of type User
WHERE    | Specify conditions for node match
rand()   | Return a random number from 0 to 0.9999...
<        | Less than
0.1      | ??
RETURN   | Give back the matched node(s)
n        | Our node(s)
LIMIT 21 | Don't return more than 21 nodes

rand()0.1做了什么?它是否以某种方式限制了潜在的节点返回?

如果这有帮助,我有大约10,000个节点

1 个答案:

答案 0 :(得分:1)

正如您的问题已经陈述的那样,WHERE子句指定MATCH成功的条件。因此,WHERE rand() < 0.1表示MATCH有10%的成功概率。