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
10 months ago
|
'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;
|