552510
问题起因:
第一步:let a = User.findOne({_id: aId});
// a = {aa: 'aa', bb: 'bb'}
第二步:let b = User.findOne({_id: bId});
// b = {bb: 'cc', dd: 'dd'}
第三步: b = lodash.merge(a, b)
// b = {aa: 'aa', bb: 'cc', dd: 'dd'}
第四步:b.save()
// b= {bb: 'cc', dd: 'dd'}
问题说明:
因为 b 被merge 后 里面的静态方法 和 prototype 和 a 的混在一起 导致 b.save() 后并没有 改变
因为线上 Schemas 字段比较多,不能一个个挑出来,有什么办法能取出 b 里面我在 schemas 定义的纯净的值 而不带 proto 和 mongodb 自带的字段和方法