我的收集结构中有日,月和年字段,如下所示。
{"_id" : ObjectId("52e979810c27656f5f31ff9f"),
"day" : 9,
"mid" : 1,
"month" : 4,
"year" : 2017}
我想获取大于日期的文档。按Date对象比较文档很容易,但是这里没有日期字段。
我尝试使用$ dateFromParts运算符,但是由于我的MongoDB版本是3.4.19,所以无法正常工作。
我该如何解决这个问题?
感谢您的帮助。
答案 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}}
]
})