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
				
				828 B
			
		
		
			
		
	
	
					36 lines
				
				828 B
			| 
											3 years 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; |