我正在使用 pymongo。我的字段之一是:published_date这是一个格式为2020/03/10 07:20:09
我可以使用以下聚合将此值转换为日期时间:
isodate = datetime.now()
pipeline = [
{'$limit': 2},
{'$project': {
'date':'$published_date',
'date2': {
'$dateFromString': {
'dateString': '$published_date',
}
},
}
}
]
cursor = TEST_COLLECTION.aggregate(pipeline)
list(cursor)
date2转换为日期时间的值在哪里(已经工作)。现在,应该过滤文档列表,例如date2 >= isodate 我尝试通过实施来做到这一点:
'date2': {
'$filter': {
'input': {
'$dateFromString': {
'dateString': '$published_date',
}
},
'as': "date2",
'cond': {
'$gte': ['$$date2', isodate]
}
}
}
但它似乎不起作用,因为我收到以下错误:
OperationFailure:$filter 的输入必须是数组而不是日期
更新 正如评论中所问,数据由具有多个字段的文档组成,published_date是其中之一。我希望输出符合 . 过滤器的文档列表published_date >= datetime.now()。
也许解决方案不是管道,但我不确定,因为这是我第一次使用aggregates.
有什么想法吗?
江户川乱折腾
相关分类