我想在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 :(得分: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
之前,您需要将其变为字符串。