12345678910111213141516171819202122232425262728293031323334 |
- 'use strict';
- const OperationBase = require('./operation').OperationBase;
- const handleCallback = require('../utils').handleCallback;
- const MongoError = require('../core').MongoError;
- const MongoDBNamespace = require('../utils').MongoDBNamespace;
- class ExecuteDbAdminCommandOperation extends OperationBase {
- constructor(db, selector, options) {
- super(options);
- this.db = db;
- this.selector = selector;
- }
- execute(callback) {
- const db = this.db;
- const selector = this.selector;
- const options = this.options;
- const namespace = new MongoDBNamespace('admin', '$cmd');
- db.s.topology.command(namespace, selector, options, (err, result) => {
- // Did the user destroy the topology
- if (db.serverConfig && db.serverConfig.isDestroyed()) {
- return callback(new MongoError('topology was destroyed'));
- }
- if (err) return handleCallback(callback, err);
- handleCallback(callback, null, result.result);
- });
- }
- }
- module.exports = ExecuteDbAdminCommandOperation;
|