options_operation.js
894 Bytes
'use strict';
const OperationBase = require('./operation').OperationBase;
const handleCallback = require('../utils').handleCallback;
const MongoError = require('../core').MongoError;
class OptionsOperation extends OperationBase {
constructor(collection, options) {
super(options);
this.collection = collection;
}
execute(callback) {
const coll = this.collection;
const opts = this.options;
coll.s.db.listCollections({ name: coll.collectionName }, opts).toArray((err, collections) => {
if (err) return handleCallback(callback, err);
if (collections.length === 0) {
return handleCallback(
callback,
MongoError.create({ message: `collection ${coll.namespace} not found`, driver: true })
);
}
handleCallback(callback, err, collections[0].options || null);
});
}
}
module.exports = OptionsOperation;