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

MongoDB如何从DateTime字符串中去除时间部分并新增字段存储

问题原因

你写的代码不生效的核心原因是:$dateFromString的format参数用于指定输入待解析字符串的匹配格式,而非输出结果的格式。你传入的VersionDate是带时间的ISO 8601格式字符串,和你设置的%Y-%m-%d格式不匹配,因此解析失败。

可行解决方案

方案1:日期对象转换(推荐,兼容性强,支持时区处理)

先通过$dateFromString将字符串解析为MongoDB内置的Date类型,再通过$dateToString指定输出为年月日格式,无需额外定义输入格式,MongoDB默认支持ISO 8601格式解析:

TESTONE = {
   $addFields: {
      DateTest: {
        $dateToString: {
          format: "%Y-%m-%d",
          date: { $dateFromString: { dateString: "$VersionInfo.VersionDate", onNull: new Date(0) } }
        }
      }
   }
};

方案2:字符串截取(性能更高,适合固定格式输入)

如果你的VersionDate格式固定,前10位固定为YYYY-MM-DD格式,可以直接截取字符串,效率更高:

TESTONE = {
   $addFields: {
      DateTest: { $substrCP: ["$VersionInfo.VersionDate", 0, 10] }
   }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:18:02