我有一个小应用程序,它可以完成所有操作,并在数据库中删除“监视器”。我知道一个事实,那就是删除路由不会导致这种情况,我可以关闭节点应用程序然后走开,并在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);
有人对可能发生的事情有任何建议或想法吗?我对此深感困惑。
答案 0 :(得分:0)
似乎我遇到的问题与以下事实有关:我先前在收藏夹中有一个到期日,该到期日是为了使数据库较小以进行测试。当我放弃收藏时认为会清除它。它没有清除它,而是将到期日期留在了那里。所以我要做的是db.monitors.dropIndex('createdAt_1')
,我认为已经解决了。我知道明天是否可以解决,因为到期时间为12小时。