Mongoose Lodash u2;扩展不扩展嵌套对象
我的jsbin链接在这里: 下面是我的代码: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: [],
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();