2012-08-12 95 views
2

我正在使用貓鼬在Node.js和MongoDB中編寫服務器。發送之前的過濾器響應

我有一個看起來像這樣的用戶模型:

var User = new Schema({ 
    username : { 
    'type'  : String, 
    'trim'  : true, 
    'required' : true, 
    'validate': [usernameValidator, 'whitespace_not_allowed'] 
    }, 
    avatar : { 
    'type'  : String, 
    'lowercase' : true, 
    'required' : true 
    }, 
    facebook_id : { 
    'type'  : Number, 
    'required' : true, 
    'index'  : { unique: true } 
    }, 
    email : { 
    'type'  : String, 
    'lowercase' : true, 
    'required' : true 
    }, 
    token : { 
    'type'  : String, 
    'index'  : { unique: true }, 
    'required' : true 
    } 
}); 

當客戶端請求的所有他的Facebook上的朋友,我不想把他送到用戶令牌,這是幾乎每個請求的事實。但對於一些請求,如登錄,我想發送令牌。

問題在於,在查詢數據庫時忘記過濾結果併發送令牌其他信息可能是非常致命的。

我現在正在考慮的解決方案是重寫一個方法(不知道哪個方法),我指定了默認情況下應該選擇哪些字段。然後在我需要更多的少數情況下,我必須在查詢中指定它。這將確保內存泄漏不會導致錯誤的數據被髮送出去。

你如何解決這個問題?

回答

1

您可以通過字段定義的架構中select屬性默認排除結果token領域:

token : { 
    'type'  : String, 
    'index'  : { unique: true }, 
    'required' : true, 
    'select' : false 
} 
相關問題