mongodb - Pymongo - 纪元日期过滤器查询不适用于集合
问题描述
我有一个需要按文档中的日期字段过滤的 Mongodb 集合。日期以 unix 纪元格式存储。
myquery = {"created_at": {"$gt": 1623384000}}
docs = mycollection.find(myquery)
这应该返回 200k 文档,但它返回超过 1M 文档。
但是,当我从 MongoDB Compass 运行过滤器时,我得到了正确的结果。
解决方案
我认为 pymongo 不支持ISODate
使用 Unix Epoch 查询密钥。
您必须datetime
在查询之前手动将其转换为 pythons 格式。
from datetime import datetime
myquery = {"created_at": {"$gt": datetime.utcfromtimestamp(1623384000)}}
docs = mycollection.find(myquery)
推荐阅读
- python - Django rest 框架验证 POST 请求参数的最佳方法
- angular-cli - "@angular/cli": "7.1.4" 未知选项:'--es5BrowserSupport'
- c# - 中间字符串的正则表达式
- csv - SED 用 SED 或 AWK 查找和替换文本?
- python - 将来自 URL 的流式音频保存为 MP3,甚至只是将来自 URL 的音频文件保存为 MP3
- selenium-webdriver - Azure devops 版本中的 UI 硒测试
- bash - 查找包含十六进制值的文件名?
- html - 如何使用Jsoup在HTML文档中的特定关键字(多次出现)之后查找特定的html表格段
- azure - 允许用户使用 AD B2C 本地帐户注册和登录 Azure 门户
- java - java解析大写时出错,但解析小写java时没有错误