2012-09-28 71 views
12

我在對象上調用user.save(),其中我設置了user.signup_date = null;將字段設置爲空使用貓鼬的mongo對象

user.first_name = null; 
user.signup_date = null; 

user.save(); 

但是,當我看着用戶仍然有signup_date和FIRST_NAME設置MongoDB的...我怎麼有效地把這個字段設置爲空或空?

回答

31

從現有文檔中刪除這些屬性,保存文檔之前將其設置爲undefined,而不是null

user.first_name = undefined; 
user.signup_date = undefined; 

user.save(); 
+0

這工作從對象中刪除 – chovy

+0

非常好的答案,節省了我的很多時間:) –

+0

如果提交如何是一個數組它不是有利於:( –

1

是否有所作爲,如果你嘗試設定方法來代替,像這樣:

user.set('first_name', null); 
user.set('signup_date', null); 
user.save(); 

或許有保存時,如果你發生了什麼錯誤,:

user.save(function (err) { 
    if (err) console.log(err); 
}); 

它打印什麼日誌?

+1

user.set( 'FIRST_NAME',未定義);作品 – chovy

1

只是刪除字段

delete user.first_name; 
delete user.signup_date; 
user.save(); 
+4

這不起作用,對象在db中保持不變 – chovy

+2

你可以在執行'user = user.toObject()'之後試試這個。 – k00k