我有一个需要通过文档中的日期字段过滤的 Mongodb 集合。日期以unix epoch格式存储。
set.seed(8675309)
n <- 16
data <- data.frame(
age = factor(rep(c('young', 'old'), each=8)),
group=rep(LETTERS[1:2], n/2),
yval=rnorm(n)
)
ggplot(data, aes(x=group, y=yval))+
geom_boxplot(aes(color=group), outlier.shape = NA)+
geom_point(aes(color=group, shape=age, fill=group, group=group),size = 1.5, position=position_jitterdodge())+
scale_shape_manual(values = c(21,24))+
scale_color_manual(values=c("black", "#015393"))+
scale_fill_manual(values=c("white", "#015393"))+
theme_classic()
这应该返回 20 万个文档,但它返回了超过 100 万个文档。
但是,当我从 MongoDB Compass 运行过滤器时,我得到了正确的结果。
答案 0 :(得分:0)
我认为 pymongo 不支持使用 Unix Epoch 查询 ISODate
键。
您必须在查询之前手动将其转换为 pythons datetime
格式。
from datetime import datetime
myquery = {"created_at": {"$gt": datetime.utcfromtimestamp(1623384000)}}
docs = mycollection.find(myquery)