Mongo $sort 的倒序无法倒序

Reversing order of Mongo $sort fails to reverse the order

我有一个管道,像这样:

db.entrycodes.aggregate(
  {
    '$match' : {
      usedAt:{
        $exists: true
      }
    }
  },
  {
    $project: {
      usedAt: true,
      dayOfMonth: {
        '$dayOfMonth': '$usedAt'
      },
      month: {
        '$month': '$usedAt'
      },
      year: {
        '$year': '$usedAt'
      }
    }
  },
  {
    $group: {
      _id: {
        dayOfMonth: '$dayOfMonth',
        month: '$month',
        year: '$year'
      },
      count: {
        $sum: 1
      }
    }
  },
  {
    $sort: {
      year:1,
      month:1,
      dayOfMonth: 1
    }
  }
)

最后一个运算符 $sorts 在年月和 dayOnMonth 字段上。问题是数据每次都是反向排序的。如果我像这样重写查询的最后一部分:

  {
    $sort: {
      year: -1,
      month: -1,
      dayOfMonth: -1
    }
  }

数据保持反向排序,这似乎与documentation相反。

这是 Mongo 中的错误,还是我遗漏了一些明显的东西?

mongod版本:2.6.9

你的$sort阶段是错误的你需要使用所谓的dot notation

{
    $sort: {
        "_id.year" : -1,
        "_id.month" : -1,
        "_id.dayOfMonth": -1
    }
}