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;
							 |