2016-03-28 13 views
0

TTLメソッドを使用してmongodbからドキュメントを削除することに苦労しています。 最大1.10分後にドキュメントを削除することになっていますが、永遠に残っています。node.jsを含むMongodb TTL

モデル::

var mongo = require('mongoose'), 
Schema = mongo.Schema; 

var article = new Schema({ 
createdAt: { type: Date, expires: '10s'}, 
title: {type: String}, 
author: {type: String}, 
year: {type: String}, 
abstract: {type: String}, 
article: {type: String}, 
score: {type: String}, 
category: {type: String}, 
link1: {type: String}, 
link2: {type: String} 
}); 

module.exports = mongo.mod 

アプリ:あなたはその列に索引を作成する必要が

var express = require('express'); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 

var db = mongoose.connect('mongodb://localhost/sasapi'); 

var article = require('./models/article'); 

const port = 3000; 
var app = express(); 

app.use(bodyParser.json()); 
var sasRouter = express.Router(); 

sasRouter.route('/articles') 
    .post(function(req, res) { 
var art = new article(req.body); 

    art.save(); 
     res.send("Artikkelen \"" + art.title +"\" lagt til!"); 

}) 
.get(function (req, res) { 
    var filter = {}; 
    if (req.query.title){ 
     filter.title = req.query.title; 
    } 
    if(req.query.author){ 
     filter.author = req.query.author; 
    } 
    article.find(filter, function(err, articles){ 
    if(err){ 
    res.status(500).send(err); 
    }else{ 
    if(!articles.length){ 
     res.send("Ingen treff på filtrering") 
    }else { 

     res.json(articles); 
    } 
    } 
    }); 

}); 
+0

Mongooseは既存のインデックスを変更しないため、インデックスは最初に作成されたときと同じように表示されることがよくあります。 'db.articles.getIndexes()'の出力を含むように質問を編集できますか? – JohnnyHK

答えて

0

は、ここに私のコードです。

// Expire at the time indicated by the createdAt field 
article.index({ createdAt: 1 }, { expireAfterSeconds : 10 }); 
関連する問題