Mongoose - создание индекса TTL на уровне модели вместо уровня схемы - PullRequest
0 голосов
/ 27 ноября 2018

В 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.

...