deno.land / x / mongoose@6.7.5 / lib / options / VirtualOptions.js
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165'use strict';
const opts = require('./propertyOptions');
class VirtualOptions { constructor(obj) { Object.assign(this, obj);
if (obj != null && obj.options != null) { this.options = Object.assign({}, obj.options); } }}
/** * Marks this virtual as a populate virtual, and specifies the model to * use for populate. * * @api public * @property ref * @memberOf VirtualOptions * @type {String|Model|Function} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'ref', opts);
/** * Marks this virtual as a populate virtual, and specifies the path that * contains the name of the model to populate * * @api public * @property refPath * @memberOf VirtualOptions * @type {String|Function} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'refPath', opts);
/** * The name of the property in the local model to match to `foreignField` * in the foreign model. * * @api public * @property localField * @memberOf VirtualOptions * @type {String|Function} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'localField', opts);
/** * The name of the property in the foreign model to match to `localField` * in the local model. * * @api public * @property foreignField * @memberOf VirtualOptions * @type {String|Function} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'foreignField', opts);
/** * Whether to populate this virtual as a single document (true) or an * array of documents (false). * * @api public * @property justOne * @memberOf VirtualOptions * @type {Boolean} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'justOne', opts);
/** * If true, populate just the number of documents where `localField` * matches `foreignField`, as opposed to the documents themselves. * * If `count` is set, it overrides `justOne`. * * @api public * @property count * @memberOf VirtualOptions * @type {Boolean} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'count', opts);
/** * Add an additional filter to populate, in addition to `localField` * matches `foreignField`. * * @api public * @property match * @memberOf VirtualOptions * @type {Object|Function} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'match', opts);
/** * Additional options to pass to the query used to `populate()`: * * - `sort` * - `skip` * - `limit` * * @api public * @property options * @memberOf VirtualOptions * @type {Object} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'options', opts);
/** * If true, add a `skip` to the query used to `populate()`. * * @api public * @property skip * @memberOf VirtualOptions * @type {Number} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'skip', opts);
/** * If true, add a `limit` to the query used to `populate()`. * * @api public * @property limit * @memberOf VirtualOptions * @type {Number} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'limit', opts);
/** * The `limit` option for `populate()` has [some unfortunate edge cases](/docs/populate.html#query-conditions) * when working with multiple documents, like `.find().populate()`. The * `perDocumentLimit` option makes `populate()` execute a separate query * for each document returned from `find()` to ensure each document * gets up to `perDocumentLimit` populated docs if possible. * * @api public * @property perDocumentLimit * @memberOf VirtualOptions * @type {Number} * @instance */
Object.defineProperty(VirtualOptions.prototype, 'perDocumentLimit', opts);
module.exports = VirtualOptions;
Version Info