如何统计和总结两个日期之间的字段?

时间:2017-02-23 07:10:36

标签: node.js mongodb

这是我的模型文件:

income.js

var incomeSchema = new schema({
  issuedBy: { type: schema.Types.ObjectId, ref: 'user' },
  amount: {type: Number, default: 0},
  content: { type: String, default :''},
  note: { type: String, default: ''}
}, {timestamps: true});

现在我想总结2个日期之间的所有金额值并计算并将这些日期之间的所有数据导出到表格中。

例如:我想在2017年2月12日到2017年2月23日之间汇总所有金额并显示如下:

1.交易数量:20

2.总额:2500美元

3.显示2个日期之间所有数据的表格。

我使用

尝试了一些答案
collection.find( {'createdAt': {$gte: Date, $lte: Date}}

但我仍然无法做到。

任何解决方案将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试以下聚合。

db.collection.aggregate(
    [{
        $match: {
            createdAt: {
                $gte: new Date('2017-02-12'),
                $lte: new Date('2017-02-23')
            }
        }
    }, {
        $group: {
            _id: null,
            Total: {
                $sum: "$amount"
            },
            NoOfTransactions: {
                $sum: 1
            }
        }
    }]
)

您可以使用$ out stage来写入新的集合。