Создать собственный получатель - PullRequest
0 голосов
/ 18 июня 2020

Как я могу сделать поле в документе настраиваемым получателем? Я хочу, чтобы поле subtotal возвращало productTotal + tax в любое время, когда я получаю subtotal.

const item = new mongoose.Schema({
    payment: {
        productTotal: Number,
        tax: Number,
        subtotal: Number, // (productTotal + tax)
    }
});

const Item = mongoose.model('Item', item);

Я не могу использовать виртуализацию, так как я хочу также использовать find на subtotal .

1 Ответ

0 голосов
/ 18 июня 2020

Привет, я никогда не использовал пн goose, но мы можем практически создать прототип для модели Item. Я предполагаю, что этот код будет работать?

const item = new mongoose.Schema({
  payment: {
    productTotal: Number,
    tax: Number,
  },
});
const Item = mongoose.model("Item", item);
Item.prototype.subtotal = function () {
  return this.payment.productTotal + this.payment.tax;
};

const newItem = new Item({ payment: { productTotal: 10, tax: 10 } });
// Obv you need to call it as function :)
console.log(newItem.subtotal());

Я проверил документацию из mon goose не удалось найти ничего связанного с геттером

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...