MongoDB TTL索引正在删除文档,但用法未更新

时间:2018-12-21 16:22:36

标签: c# mongodb mongodb-.net-driver mongodb-compass

我在Timestamp属性上建立了TTL索引,这是一个非常简单的索引。我已经使用MongoDb .Net Driver V 2.7.2在mongo上下文构造函数中创建了索引。  它正在按预期从给定集合中删除文档,但在MongoDBCompass社区以及通过Mongo终端对其进行检查时,“用法”未更新。

<code>
Here is the out put running $indexStat:

MongoDB Enterprise > db.testCollection.aggregate( [ { $indexStats: { } } ] ).pretty()
{
        "name" : "_id_",
        "key" : {
                "_id" : 1
        },
        "host" : "****:27017",
        "accesses" : {
                "ops" : NumberLong(15),
                "since" : ISODate("2018-12-20T22:52:01.132Z")
        }
}
{
        "name" : "****TTLIndex",
        "key" : {
                "Timestamp" : -1
        },
        "host" : "****:27017",
        "accesses" : {
                "**ops" : NumberLong(0),**  <----- This is zero
                "since" : ISODate("2018-12-20T22:52:01.132Z")
        }
}
</code>

enter image description here

什么原因可能导致使用情况无法更新?其他集合上的其他TTL索引工作正常吗?

修改 我原本希望看到这样的东西 enter image description here

1 个答案:

答案 0 :(得分:1)

仅在用户请求驱动的索引访问中,$ indexStats中的accesses值才会增加。这不包括后台TTL删除:

  

访问字段报告的统计信息仅包含索引   由用户请求驱动的访问。它不包括内部   通过TTL索引删除或块拆分和迁移等操作   操作。

https://docs.mongodb.com/manual/reference/operator/aggregation/indexStats/