请问 Mongodb 或 Mongoose 裡有 out_date 这个关键字吗?
发布于 12 年前 作者 Knovour 6530 次预览 最后一次回复是 9 年前 来自
今天打开电脑时发现 mongodb 裡测试用的资料都被砍了,重新开 server 随便注册几个帐号进去一段时间后,资料又不见了。 折腾一个上午后发现,我之前有设一个 out_date 的标签,当时裡面只有塞两分钟的期限。
Schema 如下:
out_date: { type: Date, default: new Date().setMinutes(new Date().getMinutes() + 2) }
但当时我只是写好放着,没有写其他 code 去检查是否过期,关掉 server 一段时间后,在 mongodb 裡的资料还是不见了。
重新塞一个帐号进去,然后用 MongoHub 把这个资料删除储存后,该笔帐号就没再消失了。 不过我搜寻不到相关的资料,请问 out_date 是一个 mongodb 关键字吗?谢谢
5 回复
不是保留关键字,schema的定义也没问题,我建议你检查一下 “删除过期数据”的那个方法,看中间是不是什么逻辑出错了?
祝好。
可是我没写任何“删除过期数据”的方法 只是之前在 out_date 裡有加过
expires: "3m",但之后没多久就删掉了#####可能的解决方案 在mongo shell中执行
不出意外的话,除_id外你还会看到另外一个index,如下
删除该index:
#####可能的原因
#####参考 mongoose API 中的expire: http://mongoosejs.com/docs/api.html#schema_date_SchemaDate-expires
mongoDB中的TTL: http://docs.mongodb.org/manual/tutorial/expire-data/
mongoDB中的index操作: http://docs.mongodb.org/manual/administration/indexes-management/
感谢您的说明,谢谢。
mark,学习了