Mongoose返回數據修改中遇到的坑

實際上mongoose返回的數據並不是object,雖然你通過typeof判斷類型是object,實際上是mongoose自己封裝的一個對象,並且這個對象會對數據進行實時查詢以保證其符合預定義的model,因爲model中壓根就沒有isAdd屬性,所以是無法增加的。

或者現在看來解決方法可以在model中預先定義isAdd字段,但是這個並不是沒有業務都需要的,所以這種方法太糙了,果斷放棄。幸好mongooes提供給我們函數來解決這個問題:lean()。代碼如下:

  • 方法1
Comment.findOne({
    id,
},null,{
    lean: true
}function (err,data) {
    if(...){
        data.isAdd = true;
    }else{
        data.isAdd = false;
    }

});
  • 方法2
Comment.findOne({
    id
}).lean().exec(function (err,data) {
    if(...){
        data.isAdd = true;
    }else {
        data.isAdd = false;
    }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章