
- yhuxAvNbtxUM
0000-00-00 00:00:00
- 回帖
//我在用户Schema中创建了专栏数组(articles),专栏是对象,底下articles数组嵌套了文章对象,结构类似下图://User.articles=[专栏一,专栏二...]//专栏一.articles=[文章一,文章二...]//实际操作中,只要涉及到修改原有值,一保存就报错//如splice,pop,或者直接赋值都报错,但push就成功//找到专栏,对专栏文章进行splice可以成功修改,但保存操作时报错user.articles[cindex].articles.splice(aindex,1,newarticle)//cindex专栏序号aindex文章序号id=column.articles[aindex]._idconsole.log("发布文章更新,id为:",id)//能输出结果user.save()//可成功修改,保存报错user.articles[cindex].articles[aindex].name='asdfsadf'user.save()//成功column.articles.push({_id:column.articles[aindex]._id,name:'asdfsdf'})user.save()//报错如下://UnhandledrejectionError//atmodel.wrappedPointCut[assave](C:\nodejs\myblog\node_modules\mongoose\lib\services\model\applyHooks.js:111:29)//atUser.findOne.then.user(C:\nodejs\myblog\models\UserActions.js:299:10)//attryCatcher(C:\nodejs\myblog\node_modules\bluebird\js\release\util.js:16:23)//atPromise._settlePromiseFromHandler(C:\nodejs\myblog\node_modules\bluebird\js\release\promise.js:512:31)//atPromise._settlePromise(C:\nodejs\myblog\node_modules\bluebird\js\release\promise.js:569:18)//atPromise._settlePromise0(C:\nodejs\myblog\node_modules\bluebird\js\release\promise.js:614:10)//atPromise._settlePromises(C:\nodejs\myblog\node_modules\bluebird\js\release\promise.js:693:18)当我使用save(err=>console.log(err))时,报错versionkey错误,之后我禁用掉versionkey便暂时防止了这个错误的产生。但终究还是没有弄清楚这个问题的来由。还请各位大大详解。