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.
		
		
		
		
		
			
		
			
				
					33 lines
				
				894 B
			
		
		
			
		
	
	
					33 lines
				
				894 B
			| 
											3 years ago
										 | '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; |