首页 > 解决方案 > Pymongo - 纪元日期过滤器查询不适用于集合

问题描述

我有一个需要按文档中的日期字段过滤的 Mongodb 集合。日期以 unix 纪元格式存储。

myquery = {"created_at": {"$gt": 1623384000}}
docs = mycollection.find(myquery)

这应该返回 200k 文档,但它返回超过 1M 文档。

但是,当我从 MongoDB Compass 运行过滤器时,我得到了正确的结果。

标签: mongodbdatefilterpymongo

解决方案


我认为 pymongo 不支持ISODate使用 Unix Epoch 查询密钥。

您必须datetime在查询之前手动将其转换为 pythons 格式。

from datetime import datetime

myquery = {"created_at": {"$gt": datetime.utcfromtimestamp(1623384000)}}
docs = mycollection.find(myquery)

推荐阅读