为了账号安全,请及时绑定邮箱和手机立即绑定

如何将存储为字符串/日期时间(两者)的日期转换为 MongoDB 中的日期时间?

如何将存储为字符串/日期时间(两者)的日期转换为 MongoDB 中的日期时间?

慕哥9229398 2023-03-08 16:07:14
我正在处理一个数据集,其中一个字段存储为字符串 ( %Y-%m-%d ) 或日期时间(ISODate 格式 ex-2020-05-16T00:00:00.000+00:00)。在 Python 上获取相同内容并使用 $gte/$lte 时,字符串类型值被排除在匹配之外。我尝试使用 $dateFromString 将该字段转换为日期时间,但由于存在日期时间格式的值,因此抛出以下错误: $dateFromString 要求“dateString”是一个字符串,发现:日期值为 2019-05-31T00:00: 00.000Z同样,尝试使用 $dateToString 也会引发类似的错误,因为值在同一字段中存储为字符串: 无法从 BSON 类型字符串转换为 Date。同样使用 $toDate 会引发以下错误,我对此一无所知:Error parsing date string 'Invalid date'; 0:不允许将时区标识符作为字符串的一部分传递 'I';8:双时区规范'd';6:双时区规范 'd'。任何人都可以提出解决方案,因为我似乎找不到任何东西来处理这个特定问题吗?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

$toDate是$convert的便利包装器

您可以将字符串转换为日期,同时保留任何未正确转换的值,例如

{$convert: {
      input: "$fieldname",
      to: "date",
      onError: "$fieldname",
      onNull: "$fieldname"
      }}


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信