В Mongoose вы можете указать индекс на уровне создания модели
var mongoose = require('mongoose')
var Schema = mongoose.Schema;
dbConnection = require('./db_connect.js');
var lot = new Schema({
contact: String,
savedAt: {type: Date, default:Date.now, },
provider: String,
});
lotModel = mongoose.model('mos', lot);
lotModel.createIndexes({savedAt: 1, expires: 5});
let snail = new lotModel({
contact: "ls",
provider: "Bamboo"
})
snail.save();
Или на уровне схемы
var mongoose = require('mongoose')
var Schema = mongoose.Schema;
dbConnection = require('./db_connect.js');
var lot = new Schema({
contact: String,
savedAt: {type: Date, default:Date.now, expires: 5},
provider: String,
});
lotModel = mongoose.model('mos', lot);
let snail = new lotModel({
contact: "ls",
provider: "Bamboo"
})
snail.save();
Я пытался сохранить тот же документ (улитка), используяоба метода.Проверка в оболочке mongo, чтобы увидеть, рассчитано ли время (т. Е. Срок действия документа истекает через 5 секунд), показывает, что последний метод работает, но первый еще не нужен. Мне нужно использовать первый метод, потому что я буду создавать несколько моделей изта же схема, и только одна должна иметь поведение ttl
.
Примечание : соединение с БД имеет тип replset
.