首页 > 解决方案 > 如何获得 MongoDB 中每周的最大日期和总值?

问题描述

我正在使用 MongoDB shell 来执行以下查询中的查询。

db.analytics.aggregate(
    [{ "$match": { "community": ObjectId("5e1ad5b6910a72a9bd02ccc8") } },
    {
        "$project": {
            "_id": 1, "date": 1, "week": { "$week": "$date" },
            "total": { "$add": ["$data.postCount", "$data.commentCount", "$data.voteCount.totalVotes", "$data.likeCount"] }
        }
    }]) 

现在我得到了如下图所示。

在此处输入图像描述

在上图中,我已经将日期转换为周数,但现在我只需要每周总价值的最大日期。我怎样才能解决这个问题?

标签: mongodbmongodb-queryaggregation-framework

解决方案


我正在使用这个解决方案,它工作正常。

db.analytics.aggregate({"$match":{"community":ObjectId("5e1ad5b6910a72a9bd02ccc8")}}, 
{"$sort":{"date":1}},
{"$project":{"_id":1, "date": 1, "week":{"$week":"$date"},
"total":{"$add":["$data.postCount", "$data.commentCount", "$data.voteCount.totalVotes", 
"$data.likeCount"]}}},
{"$group":{"_id":"$week","maxdate":{"$last":"$date"},"total":{"$last":"$total"}}},
{"$project":{"_id":"$_id","maxdate":1, "total":1}})

推荐阅读