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