本文介绍了_.merge克隆子文档,而不是更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的角fullstack
的项目,我尝试更新的项目添加一个新的子文档到它。当合并前检查我的 req.body
这一切看起来理所应当。然而,合并后更新的文件又增加了一个新的子文档,因为它应该,唯一的问题是,这个新的文件是不是一个它应该是一个已经存在的克隆。
在 _。合并
是 lodash
在code:
的console.log('');
的console.log(合并之前的注意事项:',entry.notes); 的console.log('');
的console.log('合并前body.notes:',req.body.notes); VAR更新= _.merge(入门,req.body); 的console.log('');
的console.log(合并后的注意事项:',updated.notes);
和我的控制台结果运行code时:
合并前 注:
[
{
内容:'< P>测试与LT; / P>,
日期:星期四2015年4月16日10时14分44秒GMT + 0200(罗,sommertid)
作者:55193679026666b00554d00e,
_id:552f6f7435828478156f6103,
注意事项:[]
}
]合并前body.notes:
[
{
内容:'< P>测试与LT; / P>,
日期:星期四2015年4月16日10时14分44秒GMT + 0200(罗,sommertid)
作者:55193679026666b00554d00e,
_id:552f6f7435828478156f6103,
注意事项:[]
},
{
内容:'< P>喇嘛喇嘛< / P>,
日期:2015-04-16T08:25:24.431Z',
作者:55193679026666b00554d00e
}
]合并后指出:
[
{
内容:'< P>测试与LT; / P>,
日期:星期四2015年4月16日10时14分44秒GMT + 0200(罗,sommertid)
作者:55193679026666b00554d00e,
_id:552f6f7435828478156f6103,
注意事项:[]
},
{
内容:'< P>测试与LT; / P>,
日期:星期四2015年4月16日10时14分44秒GMT + 0200(罗,sommertid)
作者:55193679026666b00554d00e,
_id:552f6f7435828478156f6103,
注意事项:[]
}
]
解决方案
尝试使用 _延长
或来代替:
VAR更新= _.assign(入门,req.body);
本 按ShitalShah凸显合并之间的差异和扩展,是造成重复你的与合并但本质上生成的目标:
JSBin to illustrate the differences:
var dest = {
p: { x: 10, y: 20},
};
var src = {
p: { x: 20, z: 30},
};
console.log(_.merge(dest, src));
/*
[object Object] {
p: [object Object] {
x: 20,
y: 20,
z: 30
}
}
*/
console.log(_.extend(dest, src));
/*
[object Object] {
p: [object Object] {
x: 20,
z: 30
}
}
*/
这篇关于_.merge克隆子文档,而不是更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!