使用PyMongo查询MongoDB近24小时新增数据失败求助
解决PyMongo查询MongoDB近24小时数据返回None的问题
核心问题
你的查询条件里的MongoDB比较操作符缺少$前缀,MongoDB的范围查询操作符(比如大于$gt、大于等于$gte)必须以$开头,你写的{'gt': yesterday_datetime}是无效语法,所以无法匹配到数据。
正确查询代码
import datetime from pymongo import MongoClient # 假设已完成MongoDB连接与集合获取 client = MongoClient('mongodb://localhost:27017/') db = client['你的数据库名'] collection = db['你的集合名'] # 计算24小时前的时间 yesterday_datetime = datetime.datetime.now() - datetime.timedelta(days=1) # 使用带$前缀的$gt操作符执行查询 result = collection.find_one({"DbCreateDate": {'$gt': yesterday_datetime}}) print(result)
逻辑验证
你测试的datetime.datetime(2023, 1, 3, 0, 0)确实大于2023-01-02 10:53:47,用正确的$gt操作符就能匹配到这条数据。之前精确匹配能成功,是因为精确匹配不需要操作符,直接键值对即可,但范围查询必须遵循MongoDB的操作符规则。
其他尝试失败的原因
- 用
isoformat()转时间字符串:MongoDB存储的是datetime类型,字符串与datetime类型对比会因类型不匹配失败 - 不带
$的gte/gt:操作符无效,MongoDB无法识别你的范围查询条件
内容的提问来源于stack exchange,提问作者JulienBr
相关产品推荐
相关产品推荐

