Индекс TTL MongoDB удаляет документы, но использование не обновляется - PullRequest
0 голосов
/ 21 декабря 2018

Я построил TTL-индекс для свойства Timestamp, очень простого индекса.Я создал индекс в моем конструкторе контекста Монго, используя MongoDb .Net Driver V 2.7.2.Он удаляет документы, как и ожидалось, из данной коллекции, но «Использование» не обновляется в сообществе 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 голосов
/ 21 декабря 2018

Значение accesses в $ indexStats увеличивается только для доступа к индексу, управляемого пользовательскими запросами.Это не включает фоновое удаление TTL:

Статистика, представленная в поле доступа, включает только индексный доступ, управляемый пользовательскими запросами.Он не включает в себя внутренние операции, такие как удаление через индексы TTL или разбиение на фрагменты и операции миграции.

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

...