如何在mongoDB中获取日期差异?日期应该是天数的差异吗?

时间:2018-01-02 06:47:20

标签: node.js mongodb mongoose mongodb-query

我想根据当前日期减去到期日期对象来过滤集合,并且小于等于10天。

enter image description here

我正在使用下面的代码,但我得到的日期差异是毫秒。我想要确切的日差。

db.metaobject.aggregate( 
    { $unwind :'$certifications.expiry_date'},
    {$project:{
            _id:1,name:1,date-Difference: { $divide:[ {$subtract: [ "$certifications.expiry_date",new Date ]},86400000] }
        }
    },
    {$match:{
          dateDifference:{$lte:10}
        }
    }

)

1 个答案:

答案 0 :(得分:0)

如果要在节点中使用它,则不需要计算差异:

直接计算节点js中的日期+10,然后直接计算$ lte:

var date = new Date();
var date10 = new Date(date.getTime());
date10.setDate(date10.getDate() + 10);

db.metaobject.aggregate( 
{ $unwind :'$certifications.expiry_date'},

{$match:{
      dateDifference:{$lte: new Date(date10).toJSON()}
    }
}

)