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;
    }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章