我是 arango 的新手,想从一组集合中找到最高值(位于内容对象中),我曾尝试使用 MAX 但那没有用。
如果您只想知道最高值而不是它在哪个文档中,那么最短的查询是:
RETURN MAX(collection[*].value)
但是,尤其是在较大的数据集上,以下使用AGGREGATE 的查询应该更有效:
FOR doc IN collection
COLLECT AGGREGATE max = MAX(doc.value)
RETURN max
如果要返回值最高的文档,那么可以按降序排序,返回第一个文档:
FOR doc IN collection
SORT doc.value DESC
LIMIT 1
RETURN doc
请注意,除非该字段上存在具有唯一性约束的索引,否则可能有多个文档具有相同的最高值。如果要返回具有最高值的所有文档,则可以先确定子查询中的最高值,然后按该值过滤:
LET max = FIRST(FOR doc IN collection COLLECT AGGREGATE max = MAX(doc.value) RETURN max)
FOR doc IN collection
FILTER doc.value == max
RETURN doc
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句