Данные пропадают только из одной базы данных - PullRequest
0 голосов
/ 06 марта 2019

У меня есть небольшое приложение, которое все это создает и удаляет «мониторы» в моей базе данных. Я точно знаю, что маршрут удаления не вызывает этого, прежде чем я смогу отключить приложение узла и уйти и вернуться через 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);

Есть ли у кого-нибудь какие-либо предложения или идеи относительно того, что может происходить? Я полностью зашла в тупик.

1 Ответ

0 голосов
/ 06 марта 2019

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

...