6

有没有办法使用 AQL 从集合中随机返回文档?

我想为测试目的创建一个随机图。我还没有弄清楚如何从集合中随机选择文档。

我希望我可以做这样的事情:

db._query('RETURN nodes[RAND(0..LENGTH(nodes))]').toArray()
JavaScript exception in file '/usr/share/arangodb/js/client/modules/org/arangodb/arangosh.js' at 104,11: [ArangoError 1541: invalid number of arguments for function 'RAND()', expected number of arguments: minimum: 0, maximum: 0 (while parsing)]
!    throw new ArangoError(requestResult);

关于如何做到这一点的任何想法?

4

2 回答 2

13

@yojimbo87 是对的。

要从集合中选择一个随机文档,您可以这样做:

FOR node IN nodes
  SORT RAND()
  LIMIT 1
  RETURN node

JavaScript 层(arangosh/Foxx)中的集合对象也有一个方法:

var node = db.nodes.any();
于 2015-03-03T08:18:46.557 回答
4

据我所知,RAND()AQL 函数不接受任何参数并返回 0 到 1 之间的伪随机数,这就是为什么您会收到有关无效参数数量的错误的原因。

于 2015-03-02T23:31:20.360 回答