换句话说,两者之间有区别吗?

db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )


db.eventlog.createIndex( { "lastModifiedDate": -1 }, { expireAfterSeconds: 3600 } )

?

docs 似乎没有提及与此相关的任何内容。

最佳答案

没关系。

使用单个字段索引 - 顺序无关紧要。如果它们以升序排列在一起,它们也会以降序排列在一起。

TTL 的工作原理

//find the expireAfterSeconds value from collection indexes
var expireAfterSeconds = db.eventlog.getIndexes().filter(function(i){
    return i.hasOwnProperty('expireAfterSeconds');
})[0].expireAfterSeconds;

// epoch time
var startTime = new Date(1970,0,1);
// end time
var endTime = new Date(Date.now() - expireAfterSeconds*3600);
db.eventlog.remove({lastModifiedDate: { $gt: startTime, $lte: endTime }});

引用: ttl.cpp source

完整的 TTL 解释:http://hassansin.github.io/working-with-mongodb-ttl-index

关于mongodb - MongoDB TTL 索引的排序方向重要吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57940067/

10-13 02:05