美文网首页
关于mongoose返回的数据无法修改的原因以及解决方法

关于mongoose返回的数据无法修改的原因以及解决方法

作者: Devinnn | 来源:发表于2017-04-20 23:42 被阅读0次

    我们在使用Mongoose的时候,或许大家都会发现回调返回的result无法进行修改,Google了一下,现把方法记录下来供有需要的同学参考一下。

    代码我就不贴了,能遇到这个问题的人说明对mongoose语法都是有一定了解的了,那么下面就直接说这种现象的原因。

    实际上mongoose返回的数据并不是object,虽然通过typeof判断类型是Object,但其实mongoose自己封装的一个对象,并且这个对象会对数据进行实时查询以保证其符合预定义的model,而无论添加删除model都不会改变,所以设置无效。

    那解决的方法是:

    在返回的result对象调用toObject()toJSON()方法,则可以对它进行修改。

    注意:

    本质上使用toObjecttoJSON都是可以的,其实这两个方法一般来说是没区别的,而如果要讲究区别的话,那就是如果使用toJSON的话,对生成的对象用JSON.stringify,此时用的是这个对象本身的toJSON方法来序列化,而不是原生对象Object的方法。

    参考英文:

    From the MDN document, if an object has the toJSON property as a function, JSON.stringify will use the toJSON function to serialize the object instead of the object itself.

    相关文章

      网友评论

          本文标题:关于mongoose返回的数据无法修改的原因以及解决方法

          本文链接:https://www.haomeiwen.com/subject/tmyrzttx.html