首页 > 解决方案 > MongoDB PartialFilterExpression 过滤器问题

问题描述

我有一个文档看起来像这样的项目集合:

{
    "source" : "rest",
    "serviceCode" : "fluff",
    "fluff" : "puff",
    "systemEntryTime" : ISODate("2018-05-16T09:04:00.585Z")
}

我有一个带有 TTL 选项的索引两周:

{
    "v" : 1,
    "key" : {
        "systemEntryTime" : 1
    },
    "name" : "systemEntryTime_1",
    "ns" : "storage.item",
    "expireAfterSeconds" : NumberLong(1209600)
}

现在我希望 source = "ftp" 的某些文档具有不同的 TTL。为此,我使用 partialFilterExpression 创建了以下索引:

{
    "v" : 1,
    "key" : {
        "systemEntryTime" : 1,
        "source" : 1
    },
    "name" : "systemEntryTime_1_source_1",
    "ns" : "storage.item",
    "expireAfterSeconds" : NumberLong(1),
    "partialFilterExpression" : {
        "source" : {
            "$eq" : "ftp"
        }
    }
}

不幸的是,这不起作用,我在这里做错了什么?我已经尝试删除旧索引并仅使用它,但没有根据 TTL 删除任何文档(或任何文档)。

标签: mongodb

解决方案


推荐阅读