Getting the highest value of a column in MongoDB

后端 未结 9 1629
粉色の甜心
粉色の甜心 2020-12-05 02:44

I\'ve been for some help on getting the highest value on a column for a mongo document. I can sort it and get the top/bottom, but I\'m pretty sure there is a better way to d

9条回答
  •  旧巷少年郎
    2020-12-05 03:29

    If the column's indexed then a sort should be OK, assuming Mongo just uses the index to get an ordered collection. Otherwise it's more efficient to iterate over the collection, keeping note of the largest value seen. e.g.

    max = nil
    coll.find("id" => x).each do |doc| 
        if max == nil or doc['sellprice'] > max then
            max = doc['sellprice'] 
        end
    end
    

    (Apologies if my Ruby's a bit ropey, I haven't used it for a long time - but the general approach should be clear from the code.)

提交回复
热议问题