You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB聚合使用$dateFromString报错:dateString应为字符串而非日期类型

MongoDB $dateFromString 聚合报错解决

报错原因

你遇到的报错:

MongoServerError: PlanExecutor error during aggregation :: caused by :: $dateFromString requires that 'dateString' be a string, found: date with value 2022-09-08T12:45:30.811Z

核心问题是:$dateFromString的作用是将字符串转换为Date类型,但你的createdAt字段本身就是MongoDB自动存储的Date类型(因为Schema里设置了{ timestamps: true }),完全没必要用这个操作符转换,直接使用字段即可。

修正后的聚合代码

db.collection.aggregate([{
  $group: {
    _id: {
      createdAt: '$createdAt'
    }
  }
}])

进阶需求:按日期维度分组(忽略时分秒)

如果你的实际需求是按日期(年月日)而非完整时间戳分组,可以用$dateTrunc操作符实现:

db.collection.aggregate([{
  $group: {
    _id: {
      $dateTrunc: {
        date: '$createdAt',
        unit: 'day' // 可按需改为hour/month等
      }
    },
    total: { $sum: 1 } // 统计每组数量
  }
}])

内容的提问来源于stack exchange,提问作者ds97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:30:18