Javascript MongoDB:使用空参数设置$unset会导致409错误
我尝试动态设置或取消设置值。大多数情况下,我必须同时做这两件事,但并不总是这样。我就是这么做的:Javascript MongoDB:使用空参数设置$unset会导致409错误,javascript,mongodb,Javascript,Mongodb,我尝试动态设置或取消设置值。大多数情况下,我必须同时做这两件事,但并不总是这样。我就是这么做的: Collection.update( { _id: id }, { $set: data, $unset: remove }, function (error) { console.warn(error); } ); 如果设置了数据和删除,则此操作有效。但并不是总有什么东西需要移除。因此,如果rem
Collection.update(
{ _id: id },
{
$set: data,
$unset: remove
},
function (error) {
console.warn(error);
}
);
如果设置了数据
和删除
,则此操作有效。但并不是总有什么东西需要移除。因此,如果remove={}
,我将得到一个409错误,因为remove
是空的
如何改进更新?在传入对象之前,您需要额外检查
删除对象的大小:
var update = {
$set: data
}
if (Object.keys(remove).length > 0) {
update['$unset'] = remove;
}
Collection.update(
{ _id: id },
update,
function (error) {
console.warn(error);
}
);