2016-01-16 4 views
2

Я пытаюсь установить или отключить значения динамически. В основном я должен делать то и другое, но не всегда. Так это то, что я делаю:

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

Это работает, если data и remove установлены. Но не всегда есть что-то, что нужно удалить. Так что если remove = {}, я получу ошибку 409, так как remove пуст.

Как мне улучшить обновление?

ответ

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); 
    } 
); 
Смежные вопросы