Node.js MongoDB不删除TTL索引文档

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

我知道关于这个问题还有其他问题;没有一个(我试过的)解决了我的问题

使用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.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的问题。今天我将在一台临时服务器上进行测试,看看这是否会改变什么。