MongoDB如何按日期范围与指定字段条件查询文档?
MongoDB 查询符合指定条件的文档
示例集合文档
[ {"date_time": "2022-11-05 09:09:55", "dat1": "TRUI", "cod": "XC"}, {"date_time": "2022-11-21 09:09:55", "dat1": "TRQW", "cod": "KL"}, {"date_time": "2022-12-06 09:09:55", "dat1": "CBTR", "cod": "NM"}, {"date_time": "2022-12-18 09:09:55", "dat1": "METR", "cod": "XC"} ]
查询需求
筛选出cod字段值为XC,且date_time在2022-11-01至2022-12-31之间的所有文档,期望结果:
[ {"date_time": "2022-12-18 09:09:55", "dat1": "METR", "cod": "XC"}, {"date_time": "2022-11-05 09:09:55", "dat1": "TRUI", "cod": "XC"} ]
查询实现方案
根据date_time字段的存储类型,选择对应的查询语句:
情况1:date_time为字符串类型
使用字符串范围匹配,补全时间范围到当日首尾时刻,确保覆盖所有符合条件的文档:
db.your_collection.find({ "cod": "XC", "date_time": { "$gte": "2022-11-01 00:00:00", "$lte": "2022-12-31 23:59:59" } })
情况2:date_time为Date类型
用new Date()构造日期对象进行范围查询:
db.your_collection.find({ "cod": "XC", "date_time": { "$gte": new Date("2022-11-01"), "$lte": new Date("2022-12-31T23:59:59") } })
语句说明
"cod": "XC":精确匹配cod字段值为XC的文档$gte:匹配字段值大于等于指定值的文档$lte:匹配字段值小于等于指定值的文档
内容的提问来源于stack exchange,提问作者Tyson
相关产品推荐
相关产品推荐

