MongoDB TTL索引不起作用

最近在开发一个基于MongoDB的分布式锁功能,其中需要利用TTL索引解决锁释放问题,结果索引是建成了,但就是无法删除超时的文档。
翻来覆去用过各种客户端工具重建索引,调整保存数据和建立索引顺序,查看serverStatus等,就是无法触发超时删除功能。
把stackoverflow相同问题的答案都过了一遍,就是不行。
最后突然想到像这种互联网型的数据库,日志还是比较靠谱,为毛不先看看日志,于是登服务器看日志,打头一段就是:

1
2
3
4
5
6
7
Fri Mar 17 14:34:05.152 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/root/deploy/mongodb/db/diagnostic.data'
Fri Mar 17 14:34:05.152 I STORAGE [initandlisten]
Fri Mar 17 14:34:05.152 I STORAGE [initandlisten] ** WARNING: mongod started without --replSet yet 1 documents are present in local.system.replset
Fri Mar 17 14:34:05.152 I STORAGE [initandlisten] ** Restart with --replSet unless you are doing maintenance and no other clients are connected.
Fri Mar 17 14:34:05.152 I STORAGE [initandlisten] ** The TTL collection monitor will not start because of this.
Fri Mar 17 14:34:05.152 I STORAGE [initandlisten] **
Fri Mar 17 14:34:05.152 I STORAGE [initandlisten] For more info see http://dochub.mongodb.org/core/ttlcollections

wtf,为了图省事用的一个以前的库,结果这个库曾经做过某个复制集中的一员,后来复制集取消了,但复制集相关的信息还在,所以TTL Monitor根本不会启动,估计也是为了数据完整性。
最后清空system.replset集合中的相关数据,TTL正常。✌️