Ambos são válidos e retornam uma nova instância do
Mongoose.Schema
classe. O que isso significa é que ambos fazem exatamente o mesmo. Esta linha
verifica se você já possui uma instância da classe Schema, caso contrário, ele retorna uma para você. Para resumir, se você ligar
var schema = new mongoose.Schema({})
você mesmo inicializa uma instância, enquanto se chamar
var schema = mongoose.Schema({})
mangusto inicializa um para você, com isso:
function Schema(obj, options) {
if (!(this instanceof Schema)) {
return new Schema(obj, options);
}
...