MongoDB中没有日期对象的比较查询

时间:2019-03-18 07:47:06

标签: mongodb

我的收集结构中有日,月和年字段,如下所示。

{"_id" : ObjectId("52e979810c27656f5f31ff9f"),
"day" : 9,
"mid" : 1,
"month" : 4,
"year" : 2017}

我想获取大于日期的文档。按Date对象比较文档很容易,但是这里没有日期字段。

我尝试使用$ dateFromParts运算符,但是由于我的MongoDB版本是3.4.19,所以无法正常工作。

我该如何解决这个问题?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

伪代码:

- start by checking if the year is bigger
- if the year is equal, then check if the month is bigger
- if the month is also equal, then check if the day is bigger

如果全部为假,则日期不大

答案 1 :(得分:1)

您可以使用$or运算符。

只需定义条件即可。

示例:

var year = 2017, month = 4, day = 9;
db.getCollection('collection_name').find({
    $or: [
        {"year": {$gt: year}},
        {"year": {$eq: year}, "month": {$gt: month}},
        {"year": {$eq: year}, "month": {$eq: month}, "day": {$gt: day}}
    ]
})