2016-01-16 68 views
0

這是存儲在MongoDB的文檔中的一些數據:通過更新完整的對象刪除對象字段

{ 
    _id: "123" 
    order: 1 
    parent: "Dueqmd64nTxM3u9Cm" 
    type: "article" 
    unit: "kg" 
} 

雖然所有保存的數據將被計算和第一驗證(這就是爲什麼我不只是使用data = { order: 2 }),我正在使用完整的對象來更新文檔:

var data = { 
    order: 2 
    parent: "Dueqmd64nTxM3u9Cm" 
    type: "article" 
    unit: "kg" 
} 

Collection.update(
    { _id: 123 }, 
    { $set: data } 
); 

這是行得通的。

但是,如果我想刪除一些值,這是行不通的:

var data = { 
    order: 2 
    parent: "Dueqmd64nTxM3u9Cm" 
    type: "article" 
    unit: undefined 
} 

Collection.update(
    { _id: 123 }, 
    { $set: data } 
); 

我期待的unit已場內,以移除。但事實並非如此......

回答

0

要刪除字段,使用$unset操作:

data = { 
    unit: "" 
}; 
Collection.update(
    { _id: 123 }, 
    { $set: data } 
);