【问题标题】:Data going missing from only one database仅从一个数据库中丢失数据
【发布时间】:2019-03-06 01:40:16
【问题描述】:

我有一个小型应用程序,它在我的数据库中创建和删除“监视器”。在我可以关闭节点应用程序并走开并在 1 天后返回并且数据将丢失之前,我知道删除路由不会导致这种情况。它只发生在这个单一的监视器数据库上。我在 MongoDB 服务器上还有另外 3 个,另外 3 个没有数据丢失。

为此,我的代码非常简单,我有一个 post 路由将 Blow 代码作为中间件/控制器运行,就是这样。只需退出路线并等待另一条路线。

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);

是否有人对可能发生的事情有任何建议或想法?我完全被这件事难住了。

【问题讨论】:

    标签: node.js mongodb data-loss


    【解决方案1】:

    似乎我遇到的问题与我的集合之前有一个过期的事实有关,这是为了保持数据库很小以进行测试。当我放弃收藏时认为它会清除它。它没有清除它,而是将过期时间留在了那里。所以我必须做的是db.monitors.dropIndex('createdAt_1'),我认为这已经解决了。我明天会知道它是否修复它,因为过期是 12 小时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多