我正在构建一个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
]
}
}
}
])
例子