HTMLify
estimated_document_count.js
Views: 7 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 'use strict'; const Aspect = require('./operation').Aspect; const defineAspects = require('./operation').defineAspects; const CommandOperationV2 = require('./command_v2'); class EstimatedDocumentCountOperation extends CommandOperationV2 { constructor(collection, query, options) { if (typeof options === 'undefined') { options = query; query = undefined; } super(collection, options); this.collectionName = collection.s.namespace.collection; if (query) { this.query = query; } } execute(server, callback) { const options = this.options; const cmd = { count: this.collectionName }; if (this.query) { cmd.query = this.query; } if (typeof options.skip === 'number') { cmd.skip = options.skip; } if (typeof options.limit === 'number') { cmd.limit = options.limit; } if (options.hint) { cmd.hint = options.hint; } super.executeCommand(server, cmd, (err, response) => { if (err) { callback(err); return; } callback(null, response.n); }); } } defineAspects(EstimatedDocumentCountOperation, [ Aspect.READ_OPERATION, Aspect.RETRYABLE, Aspect.EXECUTE_WITH_SELECTION ]); module.exports = EstimatedDocumentCountOperation; |