如何聚合猫鼬收藏?

时间:2014-03-21 17:12:32

标签: node.js mongoose

在我的猫鼬模型中,我有一个与帐户对象相关的invoiceHeader和invoiceLine集合。 在视图中,我想显示帐户的invoiceAmount总额。 在SQL中类似于来自invoiceHeader group by account的sum sum(amount)。 我如何实现与nodeJS和mongoose类似?

1 个答案:

答案 0 :(得分:0)

假设amount是您想要求和的属性,它就像:

InvoiceHeaderModel.aggregate({
  $match: {
    account: '<Account_ID>'
  }
}, {
  $group: {
    _id: null,
    total: {
      $sum: "$amount"
    }
  }
}, {
  $project: {
    _id: 0,
    total: 1
  }
}, function(err, res) {
  // res contains the result
});

$match运算符用于匹配某些文档。 $group运算符用于对文档进行分组。 $project运算符用于从文档中选择某些字段。