关于mongoDB查询确切年份的问题



我正在构建一个html表单,它将查询MongoDB并检索基于年份的整个记录。

如何只查询年份?

SQL:

select * from database where date == '2021'

如何在MongoDB做等效?

如果您将日期存储为Date,则有两个选项:

第一个是创建日期和比较(没有在python中测试,但应该可以工作):

import datetime
start = datetime.datetime(2021, 1, 1)
end = datetime.datetime(2022,1,1)
db.find({date: {$gte: start, $lt: end}});

注意这里的技巧是查询所需年份之间的日期,如以下示例

另一种方法是这样使用聚合:

在这里,您使用$year获得年份,并与您想要的值进行比较。

db.collection.aggregate([
{
"$match": {
"$expr": {
"$eq": [
{
"$year": "$date"
},
2021
]
}
}
}
])

例子

最新更新