猫鼬到期

我有以下模式:猫鼬到期

ip: String, 

port: Number,

msgboard: [{

date: {

type: Date,

default: Date.now,

expires: 120

},

msg: String

}]

我想从创建120秒后自动删除的消息。但上面的删除是整个文件,而不仅仅是来自msgboard的subdoc。 我一直在使用cron并运行一个函数,但代码看起来太凌乱了。有没有内在的方法?

回答:

我认为你应该试试这个,它的工作。 我已经创建了两个模式针对此问题

msgboard架构:

var mongoose  = require('mongoose'); 

var Schema = mongoose.Schema;

var msgboardSchema = new Schema({

date: {

type: Date,

default: Date.now,

expires: 120

},

msg: String

});

module.exports = mongoose.model('msgboard', msgboardSchema);

主测试模式:在其中msgboard的引用存储

var mongoose  = require('mongoose'); 

var Schema = mongoose.Schema;

var TestSchema = new Schema({

ip : { type : String },

port : { type : String },

msgboard : [{type : Schema.Types.ObjectId, ref : 'msgboard'}]

});

module.exports = mongoose.model('Test', TestSchema);

作为msgboard是从单独的测试,这只会在120s后从Test中删除msgboard subdocumet,而不是整个测试文档。

以上是 猫鼬到期 的全部内容, 来源链接: utcz.com/qa/260562.html

回到顶部