如何解决MongoDb Atlas - 按日期过滤而没有 ISODate 返回零结果
如何强制 MongoDb Atlas 在不使用 ISODate 的情况下返回结果?
有我的问题截图:
我不想使用 ISODate。有任何想法吗?非常感谢:-)
解决方法
您可以使用 $dateToString 来执行此操作,这需要像这样的聚合管道:
db.collection.aggregate([
{
$addFields: {
createdAt: {
"$dateToString": {
"date": "$createdAt",}
}
}
}
])
您还可以使用 format
的 timezone
和 $dateToString
参数来更改输出以匹配您需要的结构。
这就是它的工作原理。
从不将日期/时间值存储为字符串,这是一个设计缺陷。始终使用正确的 Date
对象(ISODate()
只是 new Date()
的别名)。所以,你做对了!
当然,当您存储 Date
值时,您必须与 Date
值进行比较 - 而不是字符串。
显示为 2021-03-321T14:22:16.595+00:00
的结果正是您的客户端应用程序显示日期值的方式。通常,您可以在您的客户偏好设置中更改它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。