2014-11-03 36 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之前,您需要将它变成一个字符串。

相关问题