You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
829 B
JavaScript
37 lines
829 B
JavaScript
'use strict';
|
|
|
|
const clone = require('../helpers/clone');
|
|
|
|
class PopulateOptions {
|
|
constructor(obj) {
|
|
this._docs = {};
|
|
this._childDocs = [];
|
|
|
|
if (obj == null) {
|
|
return;
|
|
}
|
|
obj = clone(obj);
|
|
Object.assign(this, obj);
|
|
if (typeof obj.subPopulate === 'object') {
|
|
this.populate = obj.subPopulate;
|
|
}
|
|
|
|
|
|
if (obj.perDocumentLimit != null && obj.limit != null) {
|
|
throw new Error('Can not use `limit` and `perDocumentLimit` at the same time. Path: `' + obj.path + '`.');
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The connection used to look up models by name. If not specified, Mongoose
|
|
* will default to using the connection associated with the model in
|
|
* `PopulateOptions#model`.
|
|
*
|
|
* @memberOf PopulateOptions
|
|
* @property {Connection} connection
|
|
* @api public
|
|
*/
|
|
|
|
module.exports = PopulateOptions;
|