Mongoose商店查询结果变量

时间:2017-05-18 16:55:29

标签: node.js mongodb express mongoose

如何将聚合函数的查询结果存储到变量中,并在其他函数中使用它。 我有这个功能来计算记录:

const utilitiesFunctions = {};
utilitiesFunctions.conteoBatch = (callback) => {
  workOrder.aggregate({
    $unwind: "$batches"
  }, {
    $group: {
      _id: "$batches",
      total: {
        $sum: 1
      }
    }
  }, function(err, conteos) {
    callback(conteos);
  });
}

module.exports = utilitiesFunctions;

结果是:

[ { _id: 591c9fc757ddf611fc7c5840, total: 2 },
  { _id: 591c9a9e5683f81b8c48e44c, total: 1 } ]

我使用LOOP搜索具有较低计数的_id。如何将id传递给变量以在其他验证函数中使用它,如下所示:

var idb = utilitiesFunctions.conteoBatch();//idb=591c9fc757ddf611fc7c5840

1 个答案:

答案 0 :(得分:0)

如果我理解正确你需要的东西必须是这样的

 let objWithSmallestCount = {};
 let results = utilitiesFunctions.conteoBatch();

让我们说你找到最小数量的算法是isSmallestCount()

 for (let result of results) {
     if (isSmallestCount(result.total) {
         objWithSmallestCount = result;
     }
 }

从这一点开始,你可以随心所欲地做任何事情

 let id = objWithSmallestCount._id;