使用$ sum的Mongodb聚合查询

时间:2015-08-20 10:27:31

标签: mongodb aggregation-framework

我有一个名为test的集合。我希望在sal集合中的所有文档中获得一个密钥的总数:test

以下是示例文档:

[
    {
    "name": "hari",
    "sal": "100",
    "status": "Y",
    "address": "Bangalore"
    },
    {
    "name": "Sam",
    "sal": "200",
    "status": "Y",
    "address": "Bangalore"
    },
    {
    "name": "Nik",
    "sal": "200",
    "status": "N",
    "address": "Bangalore"
    }
]

我尝试了以下查询:

db.getCollection('test').aggregate([{
  $match: {
    Status: "Y"
  }
}, {
$group: {
    _id: null,
    total: {
        $sum: "$sal"
    }
  }
}])

我变零了。

任何人都可以建议我在集合中的所有文档中添加特定密钥的正确查询。

1 个答案:

答案 0 :(得分:1)

如示例文档中所述,

$sum仅适用于整数,长整数和浮点数。现在,没有运算符可以将字符串解析为数字,尽管这非常有用。您可以自己执行此操作,如Mongo中所述,转换存储为字符串Mongo convert all numeric fields that are stored as string

的所有数字字段

您可以参考以下答案以获取更多详情: - MongoDB - Aggregate Sum