Я могу создать индекс с помощью expiredAfterSecconds
таким образом в оболочке mongo:
db.x.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
Я могу повторить ту же команду, и это нормально для mongo:
> db.x.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 2,
"numIndexesAfter" : 2,
"note" : "all indexes already exist",
"ok" : 1
}
Однако, если я пытаюсь изменить значение expiredAfterSecconds
, воссоздавая полученный индекс, я получаю сообщение об ошибке:
> db.x.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 7200 } )
{
"ok" : 0,
"errmsg" : "Index with name: createdAt_1 already exists with different options",
"code" : 85,
"codeName" : "IndexOptionsConflict"
}
То же самое, если я использую ensureIndex()
вместо createIndex()
.
Насколько мне известно, единственный найденный мною способ изменения значения expireAfterSeconds
- это сбросить индекс, а затем создать его заново, но мне интересно, есть ли другой способ (может быть, какая-то опция "переопределения" будет передана createIndex()
?).
Я использую PyMongo, так что, если он сможет решить ограничения оболочки монго, мне тоже подойдет.