2014-11-03 40 views
1

我想要在Schema.ObjectId上定義一個新方法,這樣當我在一個Schema.ObjectId的實例上調用它時,它應該調用它。在Schema.ObjectId上定義一個方法

Schema.ObjectId.truncate = function(){ 
    return this.toString(0,4) + this.toString(this.length-4); 
} 

User.findById(id, function(err, user){ 
    console.log(user.id.truncate()); 
}); 

上面的東西(它不起作用)。

我甚至在Schema.ObjectId.prototype上試過,但它說它沒有定義。

回答

0

您可以製作一個文檔本身而不是文檔ID調用的文檔。我不知道你是想用那截做什麼,但這裏有類似的規定:

UserSchema.methods.truncateId = function() { 
    var idString = this.id.toString(); 
    return idString.substr(0, idString.length - 4); 
} 

user自稱這一點,不是user.id

User.findById(id, function (err, user) { 
    console.log(user.truncateId()); 
}); 

而且, ObjectIds沒有長度。在撥打.length之前,您需要將它變成一個字符串。

相關問題