我是arango的新手,并且想要从一组集合中找到最高的值(位于内容对象中),我尝试使用MAX,但这没用。
答案 0 :(得分:0)
您可以使用SORT
和LIMIT
进行操作。例如:
FOR c IN collection
LIMIT 1
SORT c._key DESC
RETURN c
这将在_key
列中返回最大值。您可以将其与另一列交换。
答案 1 :(得分:0)
如果您只想知道最大值,而不是它所在的文档,那么最短的查询可能是:
Task<int> task4 = LoadAsync().ContinueWith(t => {
var data = t.Result;
return ComputeAsync(data).Result;
});
DoSomethingElse();
int result = await task4;
但是,尤其是在较大的数据集上,使用AGGREGATE进行以下查询应该更有效:
RETURN MAX(collection[*].value)
如果要返回具有最大价值的文档,则可以按降序排序并返回第一个文档:
FOR doc IN collection
COLLECT AGGREGATE max = MAX(doc.value)
RETURN max
请注意,除非字段上存在具有唯一性约束的索引,否则可能会有多个具有相同最大值的文档。如果要返回所有具有最高值的文档,则可以首先在子查询中确定最高值,然后按该值进行过滤:
FOR doc IN collection
SORT doc.value DESC
LIMIT 1
RETURN doc