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.
		
		
		
		
		
			
		
			
				
					46 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					46 lines
				
				1.1 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | const Aspect = require('./operation').Aspect; | ||
|  | const CommandOperation = require('./command'); | ||
|  | const defineAspects = require('./operation').defineAspects; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Get all the collection statistics. | ||
|  |  * | ||
|  |  * @class | ||
|  |  * @property {Collection} a Collection instance. | ||
|  |  * @property {object} [options] Optional settings. See Collection.prototype.stats for a list of options. | ||
|  |  */ | ||
|  | class StatsOperation extends CommandOperation { | ||
|  |   /** | ||
|  |    * Construct a Stats operation. | ||
|  |    * | ||
|  |    * @param {Collection} a Collection instance. | ||
|  |    * @param {object} [options] Optional settings. See Collection.prototype.stats for a list of options. | ||
|  |    */ | ||
|  |   constructor(collection, options) { | ||
|  |     super(collection.s.db, options, collection); | ||
|  |   } | ||
|  | 
 | ||
|  |   _buildCommand() { | ||
|  |     const collection = this.collection; | ||
|  |     const options = this.options; | ||
|  | 
 | ||
|  |     // Build command object
 | ||
|  |     const command = { | ||
|  |       collStats: collection.collectionName | ||
|  |     }; | ||
|  | 
 | ||
|  |     // Check if we have the scale value
 | ||
|  |     if (options['scale'] != null) { | ||
|  |       command['scale'] = options['scale']; | ||
|  |     } | ||
|  | 
 | ||
|  |     return command; | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | defineAspects(StatsOperation, Aspect.READ_OPERATION); | ||
|  | 
 | ||
|  | module.exports = StatsOperation; |