我是比较新的Node.js和受蒙戈/猫鼬,和我有一个非常困难的时期排查特定错误猫鼬:
VersionError:找不到匹配的文档.
(此问题底部的整个错误跟踪/堆栈.)
这篇博文非常清楚地概述了如何发生VersionError:
(TL; DR - "Mongoose v3现在为每个文档添加了一个模式可配置的版本密钥.只要对数组的修改可能会更改任何数组的元素位置,该值就会以原子方式递增."如果您尝试保存文档,但版本key不再匹配您检索到的对象,您可以获得上述内容VersionError.)
核心问题:有没有办法显示违规save()操作?或哪个文件未能保存?还是什么都没有?!;)
挑战:这是一个包含许多阵列的相对较大的代码库,我不确定如何开始解决问题.特别是,错误跟踪/堆栈似乎没有显示问题存在的位置.见下文:
VersionError: No matching document found.
at handleSave (<project_path>/node_modules/mongoose/lib/model.js:121:23)
at exports.tick (<project_path>/node_modules/mongoose/lib/utils.js:408:16)
at null.<anonymous> (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection.js:484:9)
at g (events.js:192:14)
at EventEmitter.emit (events.js:126:20)
at Server.Base._callHandler (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:391:25)
at Server.connect.connectionPool.on.server._serverState (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:558:20)
at MongoReply.parseBody (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:131:5)
at Server.connect.connectionPool.on.server._serverState (<project_path>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:517:22)
at EventEmitter.emit (events.js:96:17)
Run Code Online (Sandbox Code Playgroud)