pak*_*ill 3 datetime mongodb python-3.x pymongo-3.x
我面临 PyMongo 3.9 和日期时间对象的问题。在我的 MongoDB 4.x 服务器中,我有一个像这样的文档:
{
"_id" : 2,
"status" : "Running",
"start_date" : ISODate("2020-11-19T05:03:54.576Z")
}
Run Code Online (Sandbox Code Playgroud)
如您所见,start_date位于 UTC 时区,但是当我使用 PyMongo 检索文档时,时区丢失了:
db.get_collection('my_collection').find_one({'_id': {'$eq': 2}})
Run Code Online (Sandbox Code Playgroud)
我在这里读到https://pymongo.readthedocs.io/en/stable/api/bson/codec_options.html Mongo默认返回一个天真的时区日期时间,为了获得一个意识时区日期时间,我应该添加这个选项到查询:
opts=CodecOptions(tz_aware=True)
db.get_collection('my_collection', codec_options=opts).find_one({'_id': {'$eq': 99}})
Run Code Online (Sandbox Code Playgroud)
但这意味着依赖开发人员的记忆来记住将此选项添加到每个查询中。所以我的问题是:有没有什么方法可以配置 MongoDB、PyMongo 或其他任何东西来始终返回感知时区日期时间对象?
太感谢了!
您可以使用参数在MongoClienttz_aware级别执行此操作。
client = pymongo.MongoClient(tz_aware=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |