Mongoose文档没有"保存"方法 - 但是,确实如此

 jx轩宝妈咪 发布于 2022-12-31 13:33

迭代返回的一组文档时Model.find(),我将每个结果文档传递给另一个最终调用该save()方法的函数.但我得到这个错误:

[TypeError: Object # has no method 'save']


我已经确认有问题的对象是Mongoose文档.事实上 - 这真让我感到困惑......

console.log(order.save); // { [Function] numAsyncPres: 0 }
order.save(); // [TypeError: Object # has no method 'save']


我甚至不明白这是怎么可能的,因为它存在直到我称之为......

如果需要的话,我会提供更多的上下文代码,但是我正在指责这是一些已知的奇怪/愚蠢的疏忽,我可以立即认出.

编辑:在查看错误堆栈时,我看到它正在调用save.否则,我会看到完全不同的错误消息.相反,save方法无法找到内部保存方法.这是堆栈:

at C:\dev\node_modules\mongoose\lib\document.js:1272:13
at Array.forEach (native)
at model.pre.err.stack (C:\dev\node_modules\mongoose\lib\document.js:1254:12)
at model._next (C:\dev\node_modules\mongoose\node_modules\hooks\hooks.js:50:30)
at model.proto.(anonymous function) [as save] (C:\dev\node_modules\mongoose\node_modules\hooks\hooks.js:96:20)
at fixNoPriceItem (C:\dev\unimatrix\node_modules\cathy.js:202:10)
at Array.forEach (native)
at CallManager.callback (C:\dev\unimatrix\node_modules\cathy.js:181:18)
at Object.tracker.complete (C:\dev\unimatrix\node_modules\mowse\node_modules\constructors\Call-Manager.js:80:8)
at continueHandling (C:\dev\unimatrix\node_modules\mowse\node_modules\constructors\Call-Manager.js:138:14)

实际调用的函数order.savefixNoPriceItem第六个函数.

保存前对文档的唯一更改如下:

order.items[targetIndex] = itemData; // items is an arr
order.markModified('items');

我怀疑这与我如何设置子文档有关...

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有