是否可以根据partialFilterExpression
和expireAfterSeconds
创建复杂索引?
我希望有一个基于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 }
。
预期吗?我的命令不正确吗?如果没有,我们应该创建功能请求吗?我发现这样一个用例非常有用。
答案 0 :(得分:0)
我将根据@ Stennie的评论回答这个问题。我真的忘了我在那台机器上的mongo实例已经很老了。事实证明,它是3.0.6。部分索引仅在3.2中引入。
我非常欣赏mongo的灵活性和宽容度,但有时候,如果通过非重组选项时至少会发出警告,那就太好了。
无论如何,我的场景就像3.4.5上的魅力一样。