在MongoDB中使用$match在日期过滤器中使用变量

oxf4rvwz  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(102)

我试图弄清楚如何使用$set函数中定义的变量来过滤数据。在我的例子中,$startdate是我的变量,我想在$match语句中使用它。但是当我执行查询时,它没有返回任何数据。我将如何使这个查询工作?
最初,我试图做的是使用匹配来过滤昨天的数据,其中的开始日期和结束日期将在一个变量中定义。

{$set: {startdate: new Date()} },
{ $match: {
            "createdate":{ 

                        "$gte" :  {$date:"$startdate"},
                        "$lte" :  {$date:"2023-12-12T15:59:59.999Z"}
                   }
}
},
lp0sw83n

lp0sw83n1#

我建议使用第三方日期库,例如。Luxon、Day.jsmoment.js。那就简单的像这样:

{ $match: {
    createdate: { 
        $gte: DateTime.now().minus({days:1}).startOf('day').toJsDate(),
        $lte: DateTime.now().minus({days:1}).endOf('day').toJsDate()
    }
} }

相关问题