HTMLify
collections.js
Views: 6 | 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 | 'use strict'; const OperationBase = require('./operation').OperationBase; const handleCallback = require('../utils').handleCallback; let collection; function loadCollection() { if (!collection) { collection = require('../collection'); } return collection; } class CollectionsOperation extends OperationBase { constructor(db, options) { super(options); this.db = db; } execute(callback) { const db = this.db; let options = this.options; let Collection = loadCollection(); options = Object.assign({}, options, { nameOnly: true }); // Let's get the collection names db.listCollections({}, options).toArray((err, documents) => { if (err != null) return handleCallback(callback, err, null); // Filter collections removing any illegal ones documents = documents.filter(doc => { return doc.name.indexOf('$') === -1; }); // Return the collection objects handleCallback( callback, null, documents.map(d => { return new Collection( db, db.s.topology, db.databaseName, d.name, db.s.pkFactory, db.s.options ); }) ); }); } } module.exports = CollectionsOperation; |