如何通过mongoDB中的函数结果对查询结果进行排序

时间:2013-12-20 18:45:58

标签: mongodb mapreduce aggregation-framework

如何根据mongoDB中的函数结果对查询结果进行排序?在SQL中我有以下代码:

select field1, 
       field2,
       myFunction(field1, 0)
from   myTable
where  field4 = 5
order  by 3

1 个答案:

答案 0 :(得分:0)

我在下面创建了这个函数(在mongodb里面),就像我的sql查询一样。可能不太理想,但解决了我的问题:

function() {
  var list = Array();
  // myColletion is myTable equivalent
  db.myCollection.find({ field4: 5}).forEach(
    function (vet) {
      list.push([  vet.field1,
                   vet.field2,
                   myFunction(vet.field1, 0)])
    }
  );
  list.sort(function(a,b){return ((a[1] < b[1]) ? -1 : ((a[1] > b[1]) ? 1 : 0));});
  return list;
}