如何创建具有可变日期的部分索引?

Man*_*uel 5 mongodb

我想在 MongoDB 中创建一个部分索引,其中排除当前日期过去 30 天以上的文档。

像这样的东西(伪代码):

partialFilterExpression: { date: { $gte: { $currentDate - 30 days }} }
Run Code Online (Sandbox Code Playgroud)

应该$currentDate是实际的当前日期,换句话说,日期是动态值,而不是静态值。

这可能吗?

wil*_*lis 6

据我所知,部分索引当前不支持过滤表达式中的动态值,并且过滤表达式仅支持常规 mongo 查询运算符的子集(并且该子集不包含该运算符$date)。

shouldIndex实现您所需行为的一种方法是在文档上创建一个布尔字段,{shouldIndex: true}将其作为过滤器表达式,并让脚本每天为早于current_date - 30.