Пн goose Документация по геттерам / сеттерам
Ссылка, которую вы разместили, относится к версии 2.7 Пн goose, выпущенной в 2012 году. Эквивалентная страница в новой документации отвечает на большинство ваших вопросов.
На остальные можно ответить, обратившись к документации MDN для получателей и установщиков . Получатели и установщики схемы Mon goose работают так же, как Javascript (за исключением одного, см. note ).
Особенности
this
is действительно привязан к документу.
Однако получатели не принимают значения. Ваш код, вероятно, должен выглядеть следующим образом
function compress(val) {
if (this.compressed) return zlib.gzipSync(val);
else return val;
}
function expand() {
if (this.compressed) return zlib.gunzipSync(this.content);
else return this.content;
}
var MyObject = new mongoose.Schema({
content: {type: mongoose.Schema.Types.Mixed, set: compress, get: expand},
compressed: {type: Boolean, required: true, default: false}
});