My Answer: To replace a SQL select with javascript map/reduce is senseless. The whole idea of a database is to provide high performance access to data using index lookups. This particular case can be performed by a full table scan and a merge/sort operation, and so the performance might be acceptable, that is not a general solution though.
As an aside: You could optimise this in sql by providing indices on some of the fields and the DB would then perform a full index scan rather than a table scan.