Node.js MongoDB节点-如何获得两个日期之间的值之和?
我有下面的代码片段,它将从特定日期的MongoDb集合中检索日期和计数。示例:检索日期,从2020年5月5日开始计数 ||日期| |计数|| |05-06-2020|4| |05-07-2020 | 25 |等等 我想添加另一个逻辑来检索7天的总和,而不是单个日期。谢谢你的帮助Node.js MongoDB节点-如何获得两个日期之间的值之和?,node.js,mongodb,aggregate,Node.js,Mongodb,Aggregate,我有下面的代码片段,它将从特定日期的MongoDb集合中检索日期和计数。示例:检索日期,从2020年5月5日开始计数 ||日期| |计数|| |05-06-2020|4| |05-07-2020 | 25 |等等 我想添加另一个逻辑来检索7天的总和,而不是单个日期。谢谢你的帮助 mongoClient.db().collection(COLLECTION.AUDIT).aggregate([ { $match: { created_at: { $g
mongoClient.db().collection(COLLECTION.AUDIT).aggregate([
{
$match: { created_at: { $gt: date } }
},
{
$group: {
_id: {
$dateToString: { format: "%Y-%m-%d", date: "$created_at" }
},
count: { $sum: 1 }
}
},
{
$sort: { "_id": -1 }
}
])
最简单的方法就是将您的组操作符转换为$week,而不是$dateToString。因为一周是7天,这将对同一周的所有文档进行分组,并返回文档计数以及一周的数量。要从一个查询中获得两个结果,请将它们组合到一个方面中。因此:
mongoClient.db().collection(COLLECTION.AUDIT).aggregate([
{
$match: { created_at: { $gt: date } }
},
{
$facet: {
by_week: {
$group: {
_id: { $week: $created_at},
count: { $sum: 1 }
},
{ $sort: { "_id": -1 }}
},
by_day: {
$group: {
_id: {
$dateToString: { format: "%Y-%m-%d", date: "$created_at" }
},
count: { $sum: 1 }
}
},
{ $sort: { "_id": -1 }}
}
},
])
现在还不清楚你想要完成什么。你应该重新写下你的问题,让它更容易理解你想要完成什么。当然,查尔斯。我已经重写了。希望能有帮助。非常感谢。