随机 select ArangoDB 中的一个文档
Randomly select a document in ArangoDB
有没有办法使用 AQL 从集合中随机 return 一个文档?
我想创建一个随机图用于测试目的。
我还没有弄清楚如何从集合中随机 select 文档。
我希望我可以做这样的事情:
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);
关于如何做到这一点有什么想法吗?
据我所知 RAND()
AQL 函数不接受任何参数和 returns 介于 0 和 1 之间的伪随机数,这就是为什么您会收到关于参数数量无效的错误.
@yojimbo87 说的对。
要从集合中 select 随机文档,您可以改为这样做:
FOR node IN nodes
SORT RAND()
LIMIT 1
RETURN node
JavaScript 层 (arangosh/Foxx) 中的集合对象也有一个方法:
var node = db.nodes.any();
有没有办法使用 AQL 从集合中随机 return 一个文档?
我想创建一个随机图用于测试目的。 我还没有弄清楚如何从集合中随机 select 文档。
我希望我可以做这样的事情:
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);
关于如何做到这一点有什么想法吗?
据我所知 RAND()
AQL 函数不接受任何参数和 returns 介于 0 和 1 之间的伪随机数,这就是为什么您会收到关于参数数量无效的错误.
@yojimbo87 说的对。
要从集合中 select 随机文档,您可以改为这样做:
FOR node IN nodes
SORT RAND()
LIMIT 1
RETURN node
JavaScript 层 (arangosh/Foxx) 中的集合对象也有一个方法:
var node = db.nodes.any();