You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:01:51