javascript - mongoose保存報錯
問題描述
// 我在用戶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()// 報錯如下:// Unhandled rejection Error// at model.wrappedPointCut [as save] (C:nodejsmyblognode_modulesmongooselibservicesmodelapplyHooks.js:111:29)// at User.findOne.then.user (C:nodejsmyblogmodelsUserActions.js:299:10)// at tryCatcher (C:nodejsmyblognode_modulesbluebirdjsreleaseutil.js:16:23)// at Promise._settlePromiseFromHandler (C:nodejsmyblognode_modulesbluebirdjsreleasepromise.js:512:31)// at Promise._settlePromise (C:nodejsmyblognode_modulesbluebirdjsreleasepromise.js:569:18)// at Promise._settlePromise0 (C:nodejsmyblognode_modulesbluebirdjsreleasepromise.js:614:10)// at Promise._settlePromises (C:nodejsmyblognode_modulesbluebirdjsreleasepromise.js:693:18)
當我使用 save(err=>console.log(err)) 時,報錯versionkey錯誤,之后我禁用掉versionkey便暫時防止了這個錯誤的產生。但終究還是沒有弄清楚這個問題的來由。還請各位大大詳解。
問題解答
回答1:對數據庫數據修改和保存都需要使用相關方法才行,不能說直接操作數據屬性,完了用save
回答2:save方法有參數
相關文章:
1. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題2. javascript - QWebEngineView 如何爬 angular 的動態數據?3. javascript - 使用angular 的ui-sref 中出現了中文參數,點擊跳轉后瀏覽器的地址欄里出現轉義后的%AE....%a%44. 工作近5年,3年Java Web ,近2年前端,未來何去何從?5. java - 郵箱如何發送html內容6. html5 - 這個代碼顯示功能如何實現?7. javascript - 用JS 七牛上傳圖片出現文件已存在的錯誤(file exists)8. java - 字節流轉成字符串之后,在通過字符串轉成字節流后的文件為什么會不一樣?9. css3 - 圖片等比例縮放10. java - 如何理解“不要通過共享內存來通信,而應該通過通信來共享內存”?
