admin管理员组

文章数量:814986

排序在汇总mongodb中不起作用

下面给出了我的Mongodb查询。根据createdat对数据进行排序无法正常工作。请帮助我解决问题。在mongodb中激发查询后,我已附加了实际输出和预期输出。我也想从最近7天开始逐日计数。

//下面是我的查询。请对此进行调查。

User.aggregate([{
    $match: {
      createdAt: {
        $gte: new Date("2016-01-01")
      } 
    } 
  }, { 
    $group: {
      _id: { 
        "year":  { "$year": "$createdAt" },
        "month": { "$month": "$createdAt" },
        "day":   { "$dayOfMonth": "$createdAt" }
      },
      count:{$sum: 1}
    }
  },{"$sort": {"createdAt": 1}}]).exec(function(err,data){
    if (err) {
      console.log('Error Fetching model');
      res.status(500).send();
    } else {
      res.send(data);
    }
  });

输出:-

[
    {
        "_id": {
            "year": 2020,
            "month": 5,
            "day": 12
        },
        "count": 2
    },
    {
        "_id": {
            "year": 2020,
            "month": 5,
            "day": 7
        },
        "count": 2
    },
    {
        "_id": {
            "year": 2020,
            "month": 5,
            "day": 13
        },
        "count": 3
    }
]

预期输出:-

[
 {
        "_id": {
            "year": 2020,
            "month": 5,
            "day": 7
        },
        "count": 2
    },
    {
        "_id": {
            "year": 2020,
            "month": 5,
            "day": 12
        },
        "count": 2
    },

    {
        "_id": {
            "year": 2020,
            "month": 5,
            "day": 13
        },
        "count": 3
    }
]
回答如下:

您可以在下面的查询/代码中尝试:

User.aggregate([{
    $match: {
      createdAt: {
        $gte: new Date("2016-01-01")
      } 
    } 
  }, { 
    $group: {
      _id: '$createdAt',
      count:{$sum: 1}
    }
  },
  { $sort: {"_id": 1}}, 
  {$project : { 
    year:  { "$year": "$_id" },
    month: { "$month": "$_id" },
    day:   { "$dayOfMonth": "$_id" },
    count :1,
    _id :0
  }}]).exec(function(err,data){
    if (err) {
      console.log('Error Fetching model');
      res.status(500).send();
    } else {
      res.send(data);
    }
  });

本文标签: 排序在汇总mongodb中不起作用