2016-04-13 17 views
2

Bu sorunla ilgili başka soruların olduğunu biliyorum; Yok, (denedim), sorunumu çözdüm. MongoDB 3.2.1, Mongoose 4.4.x, Node 0.12.9 ya da 4.2.6'yı kullanarakMongoDB TTL ile işaretlenmiş belgeleri kaldırmıyor

. Dizin Mongo Shell ve RoboMongo hem doğrulandı

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

: Farklı alanlarda TTL endeksini ayarlama denedim

RoboMongo Index screencap

farklı yöntemler kullanarak, şöyle

Gelincik Şeması görünüyor indeksi oluşturma ve diğer bazı şeyler. Yine de belgeler, bir gecede oturduktan sonra bile olsa ve geçmişte bir zaman olmak için createdAt alanını düzenliyor.

Düşünceler?

cevap

0

MongoDB 3.2'ye sahibim ve aşağıdaki kod snippet'ini kullanarak çözüm test ettim.

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(); 
}); 

Bu belgenin yaklaşık bir dakika sonra (tam olarak 10 saniye değil) kabaca açıldığını görüyorum. En son mongoose'u almanızı ve tekrar denemenizi tavsiye ederim.

+0

Mongoose sürümü, geçerli sürüm olan 4.4.12'dir. Sanırım bu, makinemde Mongo'nun yerel kurulumuyla ilgili bir sorun. Bugün bir evreleme sunucusunda test yapacağım ve bunun herhangi bir şeyi değiştirip değiştirmediğini göreceğim. – EddieDean

İlgili konular