Mongodb上周的文档计数-并非最近7天

问题描述 投票:0回答:1

尽管这里有类似的问题,如何在特定星期范围内查找/计数文档,但我无法找出如何匹配/计算上周的文档。考虑以下查询:

db.getCollection('post').aggregate([

   {
        $match: {
            createdDate: {'$gte': new Date(new Date() - 7 * 60 * 60 * 24 * 1000)},
        }
    },
    {
        $group: {
            _id: {$week: '$createdDate'},
            count: {$sum: 1}
        }
    }
])

此查询对最近7天的文档进行计数,并按周数对计数进行分组-但结果实际上包含两个字段:当前周的文档数和从该天开始的上周起的文档数是当前日期-7天。

mongodb date week-number
1个回答
0
投票

尝试再添加两个阶段,首先根据组_id即星期数对它们进行排序,然后将结果限制为1

 db.getCollection('post').aggregate([

       {
            $match: {
                createdDate: {'$gte': new Date(new Date() - 7 * 60 * 60 * 24 * 1000)},
            }
        },
        {
            $group: {
                _id: {$week: '$createdDate'},
                count: {$sum: 1}
            }
        },
       {
         $sort:{
        _id:-1  
        }
       },
       {
        $limit:1
       }
    ])
© www.soinside.com 2019 - 2024. All rights reserved.