为什么mongoose文档无法保存?

时间:2017-05-29 09:41:10

标签: node.js mongodb mongoose

我一直在使用以下中间件,然后突然停止保存新文档。评论中的进一步说明

var body = req.body;

new ordersModel (body).save(function(err, newOrder, rowCount) {
    if (err) throw err;
    console.log(rowCount) // logs 1

    updateEstimatedTime(newOrder); /* updateEstimatedTime runs but inside
   it, trying to find this document newOrder returns null,
   meaning it was never saved */
});

如果我尝试类似

的话
var pleaseWork = new ordersModel (body);
console.log(pleaseWork) // it dumps a loaded mongoose object
pleaseWork.save(function(err, newOrder, rowCount) { 

那为什么不坚持?我还尝试在顶部重新加载服务器几次,以防我在服务器设置期间加载集合

ordersModel.find({}, 'customer', function (err, docs) {
    if (err) throw err;
    console.log(docs)
}) 

但它只返回此错误开始之前存在的文档。我已经三次检查了模型名称,它在整个脚本中都是一样的。代码缺少什么? 我在网上也看到了一些在

区域提出建议的例子
var pleaseWork = new ordersModel ();
pleaseWork.foo = body.foo;
pleaseWork.bar = body.bar;
pleaseWork.john = body.john;

console.log(pleaseWork) // dumps a loaded mongoose object
pleaseWork.save(function(err, newOrder, rowCount) { 

现在,这对我来说不可行; ordersModel表有10个以上的列 - 在模型的构造函数中删除body对象是足够的,并且在程序运行的最后一次运行。

虽然我不认为这是必要的,但如果你需要看我的模型,我可以提供。还有完整的服务器代码,以防您需要部署和测试。

1 个答案:

答案 0 :(得分:1)

感谢@ NeilLunn的评论和随后的debug data我在第10行注意到我正在删除包含此新订单的 public ActionResult DropDownn(string query) { using (DynamicDBEntities db = new DynamicDBEntities()) { var result = context.SP_DynamicCtrl(query); return result.FirstOrDefault(); } } 文件。此行不在中间件中,而是在代理初始化服务器变量

estimatedDeliveryTime = null

我正在使用它来清除无效订单中的集合