Mongo部分AND TTL索引

时间:2017-07-27 12:30:53

标签: mongodb indexing mongodb-query

是否可以根据partialFilterExpressionexpireAfterSeconds创建复杂索引? 我希望有一个基于TTL的清理,但我也想只为一些记录执行它。 我尝试使用命令创建这样的索引:

db.expirational.createIndex(
   { created_on : 1 },
   {  expireAfterSeconds : 20, partialFilterExpression: { rating: 2 } }
)

我的记录如下:db.expirational.insert({ 'name': 'record4', 'rating' : 1, 'created_on' : new Date() })

TTL部分可以工作并清理合作,但它并不关心partialFilterExpression: { rating: 2 }

预期吗?我的命令不正确吗?如果没有,我们应该创建功能请求吗?我发现这样一个用例非常有用。

1 个答案:

答案 0 :(得分:0)

我将根据@ Stennie的评论回答这个问题。我真的忘了我在那台机器上的mongo实例已经很老了。事实证明,它是3.0.6。部分索引仅在3.2中引入。

我非常欣赏mongo的灵活性和宽容度,但有时候,如果通过非重组选项时至少会发出警告,那就太好了。

无论如何,我的场景就像3.4.5上的魅力一样。