2015-03-02 40 views
3

有没有办法使用AQL从集合中随机返回文档?在ArangoDB中随机选择一个文档

我想创建用于测试的随机图。 我还没有想出如何从集合中随机选择文档。

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

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); 

如何做到这一点有什么想法?

回答

9

@ yojimbo87是对的。

要选择一个集合中的随机文档,你可以代替做到这一点:在JavaScript层(arangosh /福克斯)

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

集合对象也有一个方法:

var node = db.nodes.any(); 
3

据我所知RAND() AQL函数不接受任何参数并返回介于0和1之间的伪随机数,这就是为什么你会得到有关无效参数个数的错误。