仅一个数据库缺少数据

时间:2019-03-06 01:40:16

标签: node.js mongodb data-loss

我有一个小应用程序,它可以完成所有操作,并在数据库中删除“监视器”。我知道一个事实,那就是删除路由不会导致这种情况,我可以关闭节点应用程序然后走开,并在1天后回来并丢失数据。这仅在此单个监视器数据库中发生。我在MongoDB服务器上还有3个人,其他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 :(得分:0)

似乎我遇到的问题与以下事实有关:我先前在收藏夹中有一个到期日,该到期日是为了使数据库较小以进行测试。当我放弃收藏时认为会清除它。它没有清除它,而是将到期日期留在了那里。所以我要做的是db.monitors.dropIndex('createdAt_1'),我认为已经解决了。我知道明天是否可以解决,因为到期时间为12小时。