在mongo子文档中投影值的总和

时间:2015-12-14 19:53:22

标签: php mongodb aggregation-framework

我有一个Mongo Collection,我正在尝试聚合,我需要能够根据子文档中的值的总和来过滤结果。我的每个条目都有一个看起来像这个

的子文档
{
    "_id": <MongoId>,
    'clientID': 'some ID',
    <Other fields I can filter on normally>
    "bidCompData": [
        {
          "lineItemID": "210217",
          "qtyBid": 3,
          "priceBid": 10.25,
          "qtyComp": 0
          "description": "Lawn Mowed"
          "invoiceID": 23
        },
        {
          <More similar entries>
        }
    ]
}

我要做的是过滤给定记录中qtyBid的总和。例如,我的用户可以指定他们只想要在大于5的所有bidCompData中具有总qtyBid的记录。我的研究表明我不能在{{{}之外使用$sum 1}}管道中的阶段,但我需要能够只为每个单独的记录求和$group值。目前我的管道看起来像这样。

qtyBid

我尝试了另一个小组并在我目前拥有的小组之前放松,以便我可以得到那里的总和,但它不会让我保留我的字段除了id和sum字段。有没有办法在不使用array( array('$project' => $basicProjection), //fields to project calculated earlier using the input parameters. array('$match' => $query), array('$group' => array( '_id' => array('clientID' => '$clientID'), 'count' => array('$sum' => 1) ) ) 的情况下执行此操作?我的数据库很大,我无法承受JS执行的速度。

0 个答案:

没有答案