Skip to content

Instantly share code, notes, and snippets.

@evilj0e
Created March 29, 2016 07:40
Show Gist options
  • Save evilj0e/298ea4fb8e17a4b38fef to your computer and use it in GitHub Desktop.
Save evilj0e/298ea4fb8e17a4b38fef to your computer and use it in GitHub Desktop.

Revisions

  1. evilj0e created this gist Mar 29, 2016.
    162 changes: 162 additions & 0 deletions webdev-task-2_uskov
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,162 @@
    const multivarka = require('./multivarka');

    /**
    * Получаем соединение
    * @returns {Collection|MultivarkaConnection|*}
    * @private
    */
    function _getMultivarka() {
    var connection = connection || multivarka
    .server('mongodb://localhost/testdb')
    .collection('webdev2');

    return connection;
    }

    /**
    * Делаем простой find
    * @private
    */
    function _runFindOperation() {
    _getMultivarka()
    .find(function (err, data) {
    console.log('show all ok');
    console.log(err || data);
    });
    }

    /**
    * Делаем find с equal
    * @private
    */
    function _runEqualOperation() {
    _getMultivarka()
    .where('name')
    .equal('Пётр1')
    .find(function (err, data) {
    console.log('equal ok');
    console.log(err || data);
    });
    }

    /**
    * Делаем find с lessThan
    * @private
    */
    function _runLessThanOperation() {
    _getMultivarka()
    .where('grade')
    .lessThan(2)
    .find(function (err, data) {
    console.log('less than ok');
    console.log(err || data);
    });
    }

    /**
    * Делаем find с greatThan
    * @private
    */
    function _runGreatThanOperation() {
    _getMultivarka()
    .where('grade')
    .greatThan(4)
    .find(function (err, data) {
    console.log('great than ok');
    console.log(err || data);
    });
    }

    /**
    * Делаем find с include
    * @private
    */
    function include() {
    _getMultivarka()
    .where('group')
    .include(['200', '100'])
    .find(function (err, data) {
    console.log('include ok');
    console.log(err || data);
    });
    }

    /**
    * Делаем find с not equal
    * @private
    */
    function _runNotOperation() {
    _getMultivarka()
    .where('name')
    .not()
    .equal('Пётр6')
    .find(function (err, data) {
    console.log('not is ok');
    console.log(err || data);
    });
    }

    /**
    * Делаем update
    * @private
    */
    function _runUpdateOperation() {
    _getMultivarka()
    .where('name')
    .equal('Пётр6')
    .set('group', '100')
    .update(function (err, data) {
    console.log('update is ok');
    console.log(err || data);
    });
    }


    /**
    * Чистим базу
    */
    function flushData() {
    _getMultivarka()
    .remove(function (err, data) {
    console.log('remove ok');
    err && console.log(err);
    });
    }

    /**
    * Подготавливаем данные
    */
    function prepareData() {
    const students = [
    {name: 'Пётр1', group: 300, grade: 4},
    {name: 'Пётр2', group: 200, grade: 4},
    {name: 'Пётр3', group: 100, grade: 3},
    {name: 'Пётр4', group: 105, grade: 2},
    {name: 'Пётр5', group: 700, grade: 1},
    {name: 'Пётр6', group: 300, grade: 5}
    ];

    _getMultivarka().insert(students, function (err, data) {
    console.log('insert first ok');
    console.log(err || data);
    });
    }

    /**
    * Запускаем операции на выполнение
    */
    function runOperations() {
    _runFindOperation();
    _runEqualOperation();
    _runLessThanOperation();
    _runGreatThanOperation();
    _runNotOperation();
    _runUpdateOperation();
    }

    (function() {
    flushData();
    prepareData();
    runOperations();
    })();