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