You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
829 B
36 lines
829 B
'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;
|
|
|