MongoDB不删除TTL索引文件

我知道还有关于这个问题的其他问题。 没有,(我已经尝试过),已经解决了我的问题。

使用MongoDB 3.2.1,Mongoose 4.4.x,Node 0.12.9或4.2.6。

mongoose模式看起来像:

var schema = new Schema({ userId: {type: Schema.Types.ObjectId, ref: 'User', required: true}, createdAt: {type: Date, required: true, default: Date.now, expires: 10} }); 

索引在Mongo Shell和RoboMongo中均被validation:

RoboMongo索引screencap

我试着在不同的领域设置TTL索引,使用不同的方法创build索引,以及其他一些东西。 然而,即使让它坐过夜,文件仍然存在,编辑createdAt字段是过去的一段时间。

思考?

我有MongoDB 3.2和testing解决scheme,下面的代码片段。

 var MongoClient = require('mongodb').MongoClient, assert = require('assert'), mongoose = require('mongoose'), Schema = mongoose.Schema; var url = "mongodb://localhost:27017/test" mongoose.connect(url); var schema = new Schema({ userId: { type: Schema.Types.ObjectId, ref: 'User', required: true }, createdAt: { type: Date, required: true, default: Date.now, expires: 10 } }); var User = mongoose.model('User', schema); var user = new User({ userId: new mongoose.Types.ObjectId }); user.save(function(err, doc) { if (err) { console.log(err); } mongoose.disconnect(); }); 

我发现这个文档在一分钟之后(不完全是10秒)大概被清除了。 我build议你得到最新的mongoose,然后再试一次。