How to find min value in mongodb

atbebtg picture atbebtg · Jun 15, 2011 · Viewed 54.2k times · Source

How do you do the equivalent of

SELECT 
  MIN(Id) AS MinId
FROM
  Table

with MongoDB?

It looks like I will have to use MapReduce but I can't find any example that shows how to do this.

Answer

dcrosta picture dcrosta · Jun 15, 2011

You can use a combination of sort and limit to emulate min:

> db.foo.insert({a: 1})
> db.foo.insert({a: 2})
> db.foo.insert({a: 3})
> db.foo.find().sort({a: 1}).limit(1) 
{ "_id" : ObjectId("4df8d4a5957c623adae2ab7e"), "a" : 1 }

sort({a: 1}) is an ascending (minimum-first) sort on the a field, and we then only return the first document, which will be the minimum value for that field.

EDIT: note that this is written in the mongo shell, but you can do the same thing from C# or any other language using the appropriate driver methods.