当使用$ project,$ frequency和$ group时,Mongoose按日期排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当使用$ project,$ frequency和$ group时,Mongoose按日期排序相关的知识,希望对你有一定的参考价值。

下面的查询返回每周聚合的数据,没有特定的顺序。我希望看到它们按日期顺序从旧到新。

createdTime是类型Date。

我希望结果按周顺序排列,例如49,50,51,52,00,01,02等

{
  "aggregate": [
    {
      "$project": {
        "frequency": {
          "$dateToString": {
            "format": "%U",
            "date": "$createdTime"
          }
        }
      }
    },
    {
      "$group": {
        "_id":"$frequency",
        "count": {
          "$sum": 1
        }
      }
    }
  ]
}

但它们以随机顺序返回(其中_id是周数):

{    
{
        "_id": "52",
        "count": 51
    },
    {
        "_id": "07",
        "count": 4103
    },
    {
        "_id": "51",
        "count": 2608
    },
    {
        "_id": "49",
        "count": 69599
    },
    {
        "_id": "01",
        "count": 4418
    }
}

我该如何按日期排序?我试过在很多地方添加排序,但无济于事。

答案

希望这对你有用。

{
      "aggregate": [
        {
          "$project": {
            "frequency": {
               $concat:[{
              "$dateToString": {
                "format": "%Y",
                "date": "$createdTime"
              },{
              "$dateToString": {
                "format": "%U",
                "date": "$createdTime"
              }]
            }
          }
        },
        {
          "$group": {
            "_id":"$frequency",
            "count": {
              "$sum": 1
            }
          }
        },{$sort:{_id:-1}}
      ]
    }

输出将如下所示

{   
    {
        "_id": "201807",
        "count": 4103
    },
    {
        "_id": "201801",
        "count": 4418
    },
    {
        "_id": "201752",
        "count": 51
    },
    {
        "_id": "201751",
        "count": 2608
    },
    {
        "_id": "201749",
        "count": 69599
    }

}

以上是关于当使用$ project,$ frequency和$ group时,Mongoose按日期排序的主要内容,如果未能解决你的问题,请参考以下文章

tf-idf(term frequency–inverse document frequency)含义

gperftools 不精确与 CPUPROFILE_FREQUENCY

r语言中hist的结果的纵坐标怎么选择是density和frequency

[SQL]给定数字的频率查询中位数

使用“bin size”/“frequency”重新采样 Pandas Dataframe

Excel-统计各分数段人数 frequency()