MongoDB聚合错误:表达式必须仅具有一个字段

时间:2020-05-15 13:11:44

标签: mongodb

我有以下收藏:

{
  "_id" : ObjectId("5c3f744a0f05e90001e0085a"),
  "date" : ISODate("2016-01-12T12:00:00.779Z"),
}

我需要通过对文档进行分组,所以我想出了以下解决方案:

db.collection.aggregate([
  {
    $group : {
      _id: { $year: { date: '$date' }, $week: { date: '$date' } },
      date: { $first: '$date' }
    }
  },
  {
    $sort: { date: -1 }
  }
]);

但是当我运行它时,出现此错误:

表示表达式的对象必须具有一个字段:{$ year:{date:“ $ date”},$ week:{date:“ $ date”}}

如何解决此问题或有更好的解决方案? 谢谢

1 个答案:

答案 0 :(得分:1)

问题解决了命名表达式的问题:

db.collection.aggregate([
  {
    $group : {
      _id: {
        year: { $year: { date: '$date' } },
        week: { $week: { date: '$date' } }
      },
      date: { $first: '$date' }
    }
  },
  {
    $sort: { date: -1 }
  }
]);