Node.js MongoDB不删除TTL索引文档
我知道关于这个问题还有其他问题;没有一个(我试过的)解决了我的问题 使用MongoDB 3.2.1、Mongoose 4.4.x、节点0.12.9或4.2.6 Mongoose模式如下所示:Node.js MongoDB不删除TTL索引文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我知道关于这个问题还有其他问题;没有一个(我试过的)解决了我的问题 使用MongoDB 3.2.1、Mongoose 4.4.x、节点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.no
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中都验证了索引:
我尝试在不同的字段上设置TTL索引,使用不同的方法创建索引,以及其他一些东西。然而,即使让文档放置一夜,并将createdAt
字段编辑为过去的时间,文档仍然保留
想法?我有了MongoDB 3.2,并用下面的代码片段测试了解决方案
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秒)被删除。我建议您购买最新的mongoose,然后再试一次。mongoose版本是4.4.12,这是最新版本。我猜这是我机器上本地安装Mongo的问题。今天我将在一台临时服务器上进行测试,看看这是否会改变什么。