Mongoose v8.14.1: VirtualType (original) (raw)


VirtualType()

Parameters:

VirtualType constructor

This is what mongoose uses to define virtual attributes via Schema.prototype.virtual.

Example:

const fullname = schema.virtual('fullname');
fullname instanceof mongoose.VirtualType // true

VirtualType.prototype.applyGetters()

Parameters:
Returns:

Applies getters to value.


VirtualType.prototype.applySetters()

Parameters:
Returns:

Applies setters to value.


VirtualType.prototype.get()

Parameters:
Returns:

Adds a custom getter to this virtual.

Mongoose calls the getter function with the below 3 parameters.

Example:

const virtual = schema.virtual('fullname');
virtual.get(function(value, virtual, doc) {
  return this.name.first + ' ' + this.name.last;
});

VirtualType.prototype.set()

Parameters:
Returns:

Adds a custom setter to this virtual.

Mongoose calls the setter function with the below 3 parameters.

Example:

const virtual = schema.virtual('fullname');
virtual.set(function(value, virtual, doc) {
  const parts = value.split(' ');
  this.name.first = parts[0];
  this.name.last = parts[1];
});

const Model = mongoose.model('Test', schema);
const doc = new Model();
// Calls the setter with `value = 'Jean-Luc Picard'`
doc.fullname = 'Jean-Luc Picard';
doc.name.first; // 'Jean-Luc'
doc.name.last; // 'Picard'