diff --git a/src/backend/memory.js b/src/backend/memory.js index 960396fc..fea90eb9 100644 --- a/src/backend/memory.js +++ b/src/backend/memory.js @@ -74,8 +74,11 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {}; var fieldName = _.keys(sortObj)[0]; results = _.sortBy(results, function(doc) { var _out = doc[fieldName]; - return (sortObj[fieldName].order == 'asc') ? _out : -1*_out; + return _out; }); + if (sortObj[fieldName].order == 'desc') { + results.reverse(); + } }); var total = results.length; var facets = this.computeFacets(results, queryObj); diff --git a/test/backend/memory.test.js b/test/backend/memory.test.js index b9c2f75a..535aeb61 100644 --- a/test/backend/memory.test.js +++ b/test/backend/memory.test.js @@ -44,6 +44,22 @@ test('query sort', function () { }; var out = data.query(queryObj); equal(out.records[0].x, 6); + + var queryObj = { + sort: [ + {'country': {order: 'desc'}} + ] + }; + var out = data.query(queryObj); + equal(out.records[0].country, 'US'); + + var queryObj = { + sort: [ + {'country': {order: 'asc'}} + ] + }; + var out = data.query(queryObj); + equal(out.records[0].country, 'DE'); }); test('query string', function () {