2016-09-07 3 views
1

Использование Монго 3.2expireAfterSeconds не работает Монго

Я поставил expireAfterSeconds 3-х дней, потому что нам не нужно больше 3 дней данных по этой коллекции, но я могу видеть в дб, что у нас еще есть данные месяц назад. Что-то не так.

Информационный собрать из db.runs.getIndexes()

{ 
    "v" : 1, 
    "key" : { 
     "_id" : 1 
    }, 
    "name" : "_id_", 
    "ns" : "guardian.runs" 
}, 
{ 
    "v" : 1, 
    "key" : { 
    "created" : 1 
    }, 
    "name" : "created_1", 
    "ns" : "guardian.runs", 
    "background" : true, 
    "expireAfterSeconds" : 259200 
} 

запись, которая должна быть удалена:

[ 
    { 
    "_id": "578c8aa25a3f72387073f2f0", 
    "job_id": "573f62bf0e44a2796b6e9de1", 
    "owner": null, 
    "started": "2016-07-18T07:52:02.447Z", 
    "ended": "2016-07-18T07:52:14.119Z", 
    "status": "success", 
    "result": { 
     "success": [], 
     "fail": [], 
     "warning": [] 
    } 
    } 
] 
+0

добавлена ​​одна из записей – puppeteer701

+1

В вашем документе нет поля 'created', в котором ссылается ваш индекс TTL. – JohnnyHK

+0

Итак, если я изменил созданный, чтобы закончить, он должен работать? – puppeteer701

ответ

3

Ваш документ не имеет created поле, что ваши TTL index ссылки.

Вы должны добавить created поля к вашим документам со временем создаются каждый документ, или изменить индекс TTL ссылаться либо started или ended вместо (предполагается, что те, на самом деле являются значение дат в базе данных, а не только строка).