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