日期时间键上的Pymongo查询返回mongo查询运算符和大整数

问题描述 投票:0回答:1

我正在编写此查询;

end = dt.datetime.today()
start = end - dt.timedelta(7)

query = collection.find({'date' : {'$gt': start, '$lt' : end}},
                       {'_id' : 1, 'name' : 1, 'date_created' : 1})
docs = json.loads(dumps(query))

我正在对日期时间对象使用pymongo进行查询,并使用bson将字节转换为json。我得到的是一个文档,它没有日期时间对象,看起来像这样;

{'_id' : 0, 'name' : 'Brand CN Homepage (Desktop)', 'date' : {'$date' : 1590537600000}}

[当我尝试转换那个大整数时,我得到;

OverflowError: Python int too large to convert to C long

日期键,值应如下所示;

{'date' : datetime.datetime(2020, 4, 3, 0, 0)}

有没有一种方法可以取回日期时间对象而不是大整数?

python mongodb pymongo bson python-datetime
1个回答
0
投票

'date':{'$ date':1590537600000}

这是时间戳的扩展json表示形式,已记录在here中。要加载扩展的json,请使用json_util而不是标准库json模块。

© www.soinside.com 2019 - 2024. All rights reserved.