0

我的 db.js 包装器库中有这个函数用于 mongodb:

findAllSorted: function(name, sortBy, callback) {
  db.createCollection(name, function(err, collection) {
    collection.aggregate([{$sort: sortBy}], function(err, result) {
      console.log(result); // I want to return result as an array.
    });
  });
},

我想result通过回调作为数组返回。我该怎么做?例如,我调用这个函数db.findAllSorted('quotes', {unitprice: -1}, callback);,据我所知,它应该以最高到最低的单价降序返回我的股票报价列表。

谢谢。

4

1 回答 1

1

collection.aggregate(query, callback) 将结果作为数组返回。在上面的函数中,您需要做的就是调用回调。假设您也想让函数调用者处理错误:

findAllSorted: function(name, sortBy, callback) {
    db.createCollection(name, function(err, collection) {
        collection.aggregate([{$sort: sortBy}], function(err, result) {
            callback(err, result);
        });
    });
},
于 2013-09-09T02:26:37.410 回答