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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在mongoDB中获取日期差异?日期应该是天数的差异?相关的知识,希望对你有一定的参考价值。

我想根据当前日期减去到期日期对象来过滤集合,并且小于等于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}
        }
    }

)
答案

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

直接计算节点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()}
    }
}

)

以上是关于如何在mongoDB中获取日期差异?日期应该是天数的差异?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 postgresql 视图中获取两个日期时间字段的天数和小时数差异?

Mysql查询天数的日期差异

如何确定日期列表中的天数差异?

日期天数不应超过 31 天

具有共同 id 的组中具有最大天数的两个日期之间的差异

如何找到两个日期之间的天数差异[重复]