【发布时间】:2020-11-03 12:46:45
【问题描述】:
我正在处理一个数据集,其中字段存储为字符串(%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 类型字符串转换为日期。
同样使用 $toDate 会引发以下错误,我对此一无所知:解析日期字符串时出错'无效日期'; 0:不允许将时区标识符作为字符串的一部分传递'I'; 8:双时区规范'd'; 6:双时区规范'd'.
任何人都可以提出解决方案,因为我似乎找不到任何东西来处理这个特定问题?
【问题讨论】:
-
您可以有条件地将日期字段值转换为一种类型,然后与输入日期进行比较。或者,根据字段类型进行条件比较,但是,转换输入日期值。
标签: python mongodb datetime nosql mongodb-compass