У меня есть небольшое приложение, которое создает и удаляет «мониторы» в моей базе данных. Я точно знаю, что маршрут удаления не вызывает этого, прежде чем я смогу отключить приложение узла, уйти и вернуться через 1 день, и данные будут отсутствовать. Это происходит только для этой базы данных с одним монитором. У меня есть 3 других на сервере MongoDB, а у остальных 3 нет потери данных.
Мой код для этого довольно прост, у меня есть почтовый маршрут, который запускает код удара в качестве промежуточного программного обеспечения/контроллера, вот и все. Просто сходит с маршрута и ждет другого.
exports.newPost = function(req, res, next) {
let name = req.body.name;
if (!name) return res.status(400).json({success: false, message: 'You must fill in all required fields.'});
let newMonitor = { name };
Monitor.create(newMonitor, (err, monitor) => {
if (err) return res.status(500).json({success: false, message: 'Error saving new monitor.'});
return res.status(200).json({success: true, message: 'Successfully saved new monitor.'});
});
};
Теперь это сохраняет документ в базе данных mongo, и я вижу это с помощью инструмента mongo CLI. Ниже приведена модель, которая вызывается в приведенном выше коде.
var mongoose = require('mongoose');
const monitorSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
createdAt: { type: Date, required: true, default: Date.now }
});
module.exports = mongoose.model('Monitor', monitorSchema);
У кого-нибудь есть предложения или идеи о том, что может происходить? Я в тупике на этом полностью.





Кажется, проблема, с которой я столкнулся, была связана с тем, что у меня ранее был срок действия моей коллекции, который должен был сохранить небольшую базу данных для тестирования. Когда я бросил коллекцию, думая, что она очистится. Он не очистил его, вместо этого он оставил истечения срока действия все еще там. Так что мне пришлось сделать db.monitors.dropIndex('createdAt_1'), и это, я думаю, исправило ситуацию. Завтра я узнаю, исправлено ли это, так как срок действия истекает в течение 12 часов.