'MongoDB does not remove documents from a collection with a configured TTL Index

I try to get started with TTL indices in mongo, and wanted to get a simple demo setup running, but I just cannot get it to work and I am not sure what I do wrong.

Mongod version:

$ mongod --version
db version v4.4.5
Build Info: {
    "version": "4.4.5",
    "gitVersion": "ff5cb77101b052fa02da43b8538093486cf9b3f7",
    "openSSLVersion": "OpenSSL 1.1.1m  14 Dec 2021",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "debian10",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

I start with a completely fresh, default configured mongod instance:

$ mkdir /tmp/db && mongod --dbpath /tmp/db

Then I run the following commands

use test

db.ttldemo.insertOne({
    created_at: Date(Date.now() + 60_000)
})


db.ttldemo.createIndex({created_at: 1}, {expireAfterSeconds: 1})

db.ttldemo.find()

I would expect the document to vanish after some time, but even after running find() after waiting for a few minutes, the document is still present.

Is there anything I am missing here?

db.adminCommand({getParameter:1, ttlMonitorSleepSecs: 1}) yields 60 to me



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source