Mongoose Lodash u2;扩展不扩展嵌套对象

Mongoose Lodash u2;扩展不扩展嵌套对象,mongoose,lodash,Mongoose,Lodash,我的jsbin链接在这里: 下面是我的代码: var dest = { owner: '53a96efe07b7570013bdcb8b', schedule: 'Thu Jul 03 2014 20:00:00 GMT+0530 (India Standard Time)', _id: '53b55f52dafac9f40984fe30', __v: 0, a: [], result:{ markCard: [] }, parent: {}, b: [],

我的jsbin链接在这里:

下面是我的代码:

var dest = {
   owner: '53a96efe07b7570013bdcb8b',
 schedule: 'Thu Jul 03 2014 20:00:00 GMT+0530 (India Standard Time)',
 _id: '53b55f52dafac9f40984fe30',
 __v: 0,
 a: [],
  result:{
   markCard: [] 
  },
 parent: {},
 b: [],
 c: [],
 d: { teamRef: '53ad727d62290bc8178695fa', squad: [] },
 e: { teamRef: '53ad726e62290bc8178695f9', squad: [] } 
};

var src = {
  markCard:
   [ { i: 1,
       bt: [Object],
       bl: [Object],
       ts: [Object],
       sc: [Object] },
     { i: 2,
       bt: [Object],
       bl: [Object],
       ts: [Object],
       sc: [Object] } ],
  srcA:
   { __v: 0,
     _id: '53ad726e62290bc8178695f9',
     name: 'T-H',
     owner: '53a96efe07b7570013bdcb8b' },
  srcB: { __v: 0,
     _id: '53ad726e62290bc8178695f0',
     name: 'T-M',
     owner: '53a96efe07b7570013bdcb8b' },
  srcC: false,
  srcD: 'Bt'
};

//console.log(_.merge(dest, src));
dest.result=_.extend(dest.result, src);
console.log(dest);
预期产出:

实际产量


由于扩展,我无法将srcA和srcB的值扩展到目标。我想只有结构被复制了。有人请让我知道我错在哪里。谢谢。

如果您使用的是Mongoose模型和lodash,那么您需要先聚合数据,然后再分配数据

例如:

var data = _.merge(dest.toJSON(), src);  
_.extend(dest, data);  
dest.save();  

这可能是因为Mongoose模型向对象附加了额外的不可枚举/配置,这会在扩展/合并过程中导致问题。

如果您将Mongoose模型与lodash一起使用,则需要先聚合数据,然后再分配数据

例如:

var data = _.merge(dest.toJSON(), src);  
_.extend(dest, data);  
dest.save();  

这可能是因为Mongoose模型将附加的不可枚举/配置附加到在扩展/合并过程中导致问题的对象。

预期输出是什么?在main post中添加了我的预期输出预期输出是什么?在main post中添加了我的预期输出post@Greg附议。这是一个很大的帮助。谢谢@Henry@格雷格附议。这是一个很大的帮助。谢谢@Henry!
var data = _.merge(dest.toJSON(), src);  
_.extend(dest, data);  
dest.save();