Javascript 什么';正常更新和使用$set运算符更新之间的区别是什么?

Javascript 什么';正常更新和使用$set运算符更新之间的区别是什么?,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,常规方法: module.exports = (_id, newInfo) => { return User.update( {_id} , newInfo); }; 使用$set运算符: module.exports = (_id, newInfo) => { return User.update( {_id} , {$set: newInfo} ); }; 正如它所说: 不使用$set进行更新 如果替换对象是文档,匹配的文档将 被替换(如果未设置_id,则_i

常规方法:

module.exports = (_id, newInfo) => {
    return User.update( {_id} , newInfo);
};
使用$set运算符:

module.exports = (_id, newInfo) => {
    return User.update( {_id} , {$set: newInfo} );
};
正如它所说:

不使用
$set
进行更新

如果替换对象是文档,匹配的文档将 被替换(如果未设置_id,则_id值除外)

鉴于我们使用
$set

要仅更新选定字段,需要使用$set运算符。 以下替换对象替换作者值,但离开 其他一切都完好无损


$Set
如果没有现有字段,则创建一个新字段

如果该字段不存在,$set将添加具有指定值的新字段,前提是该新字段不违反类型约束。如果为不存在的字段指定虚线路径,$set将根据需要创建嵌入文档,以实现该字段的虚线路径