我想根据当前日期减去到期日期对象来过滤集合,并且小于等于10天。
我正在使用下面的代码,但我得到的日期差异是毫秒。我想要确切的日差。
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}
}
}
)
答案 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()}
}
}
)