MongoDB:使用空参数设置$ unset会产生409错误

时间:2016-01-16 21:31:23

标签: javascript mongodb

我尝试动态设置或取消设置值。大多数情况下,我必须做到这两点,但并非总是如此。所以这就是我的工作:

Collection.update(
    { _id: id }, 
    { 
        $set: data, 
        $unset: remove 
    }, 
    function (error) { 
        console.warn(error);
    }
);

如果设置了dataremove,则此功能正常。但并不总是需要删除的东西。因此,如果remove = {},我将收到409错误,因为remove为空。

如何改进更新?

1 个答案:

答案 0 :(得分:0)

在传递remove对象之前,您需要额外检查var update = { $set: data } if (Object.keys(remove).length > 0) { update['$unset'] = remove; } Collection.update( { _id: id }, update, function (error) { console.warn(error); } ); 对象的大小:

input