开始接触并要实现mongo的expireAfterSeconds功能;一直用的mongovue客户端界面简洁清晰都挺好,这次碰到了砍。


expireAfterSeconds有两种实现方法,例如我们有叫test的collection,test里有expire字段,给该字段设置index,而索引的附加功能里有expireAfterSeconds选项。

1. expireAfterSeconds值设置成0,expire设置未来时间值,例如当前时间+1day,等明天的这个时间就自动删除。


2. expireAfterSeconds直接设置时间,秒为单位。

db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )


不管在mongovue里怎么设置该功能就是失效!抓狂

后来发现是mongovue里设置index的时候,expireAfterSeconds功能是无效的,不是功能不好用,而是根本没有设置上!

正要准备直接连接到shell里设置的时候(因为本人操作mongo都是客户端,没有尝试过shell),发现了MongoChef,并且分分钟搞定。


虽然功能搞定了,可是一点成就感都没有, anyway~  mongovue果断抛弃。


PS: mongo是UTC时间,保存的时间和我们电脑的系统时间不一致, 我用的php做的服务器端开发,解决这个问题的方法是~  new MongoDate()

'expireAt'   => new MongoDate(strtotime('+1 day'))

Logo

前往低代码交流专区

更多推荐