I think there are a few ways, depending on whether you want to enforce it (via validation) or quietly round non-integer values (with a setter). Personally, I use the setter approach, e.g.
var mongoose = require('mongoose');
var util = require('util') ;
mongoose.connect('mongodb://localhost/ex_simple') ;
var intHolderSchema = new mongoose.Schema({
'integer': { type: Number, set: function (v) { return Math.round(v) ;}}
}) ;
mongoose.model('intHolder', intHolderSchema) ;
var intHolder = mongoose.model('intHolder') ;
var int1 = new intHolder({ integer: 3.1415 }) ;
util.debug(JSON.stringify(int1)) ;
int1.integer = 10.543 ;
util.debug(JSON.stringify(int1)) ;
mongoose.disconnect() ;
Regards,
Richard