Мангуст не создает индексы — автоматически истекает срок действия документа

#javascript #mongodb #mongoose #indexing #mongoose-schema

#javascript #mongodb #mongoose #индексирование #мангуст-схема

Вопрос:

Я пытаюсь автоматически продлить срок действия документа, используя эти методы :

 const schema = new mongoose.Schema(
    {
        field: { type: String },
        expireAt: {
            type: Date,
            default: Date.now,
            index: { expires: '2m' }
        }
    },
    { timestamps: true, autoIndex: true }
);
  

Но срок действия документа никогда не истекает, я пробовал другой синтаксис, удаляя или добавляя «Автоиндекс» и т. Д., Но ничего не получится. При проверке вкладки indexes в Mongodb Compass я могу четко видеть созданный индекс :
https://i.stack.imgur.com/JNlKE.png . Однако при проверке в оболочке mongo db.myCollection.getIndexes() я вижу все предыдущие индексы, кроме одного «expireAt», который я только что создал. Я в замешательстве: я

Комментарии:

1. Если вы используете оболочку mongo, вы переключились на правильную базу данных?

2. Да, все запросы ‘db.oneCollection.find () и т. Д. …’ Дают мне правильные документы, они соответствуют тому, что видно в compass

3. Хм, тогда не уверен. Я протестировал, и кажется, что и Compass, и shell предоставляют правильные индексы для меня. Единственное, что я могу предложить, это перезапустить shell. Теоретически это не должно помочь, но кто знает.

4. Перезапуск не сработал, в итоге я переустановил mongodb после его полной деинсталляции, и теперь все работает. Что-то, о чем я не упомянул, это то, что в какой-то момент я преобразовал этот автономный экземпляр в набор реплик, чтобы опробовать метод watch, я, вероятно, сделал что-то не так.