2016-04-13 88 views
2

我知道還有關於這個問題的其他問題;沒有,(我曾嘗試過)解決了我的問題。MongoDB不刪除TTL索引文件

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

貓鼬架構的樣子:

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

指數都在蒙戈殼牌和RoboMongo驗證:

RoboMongo Index screencap

我試過設置在不同領域的TTL指標,採用不同的方法創建索引和其他一些東西。然而,這些文件仍然存在,即使讓它坐過夜,編輯過去的時間也是如此。

想法?

回答

0

我有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秒)大致被清除。我建議你得到最新的貓鼬,然後再試一次。

+0

貓鼬版本是4.4.12,這是當前版本。我猜這是我的機器上Mongo的本地安裝問題。我將在今天的臨時服務器上進行測試,看看是否會改變任何內容。 – EddieDean