Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么不能保存mongoose文档?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 为什么不能保存mongoose文档?

Node.js 为什么不能保存mongoose文档?,node.js,mongodb,mongoose,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 b

我已经使用以下中间件有一段时间了,但它突然停止保存新文档。评论中的进一步解释

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对象就足够了,并且在程序上次运行时起作用


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

感谢@NeilLunn的评论和我随后的评论,我在第10行注意到我正在删除包含此新订单的
estimatedDeliveryTime=null
文档。这一行不是在中间件中,而是在初始化服务器变量的代理中

ordersModel.remove({estimatedDeliveryTime: null}).exec()

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

mongoose.set('debug',true)
并查看执行
.save()
时发生的情况。如果它在mongo中,则它不是表,而是集合。它不是一个列,而是一个文档属性,因为面向文档的数据库不是关系数据库。@NeilLunn这应该在mongoose.createConnection赋值之前,还是我可以随意将其放置在任何地方?确实是在任何地方,但最好是在开始时。但是您是在调用
.createConnection()
还是只调用
.connect()
?如果在回调上下文中使用
.createConnection()
,则“可能”会出现问题。一般来说,大多数猫鼬方法在做任何事情之前都会进行一次“检查”,看看连接是否存在。我会给你一个投票,让你回来,至少解释一下问题的根源。