alexbilbie/mongoqb

This package is abandoned and no longer maintained. The author suggests using the league/monga package instead.

Mongo Query Builder

Installs: 9 477

Dependents: 0

Stars: 165

Watchers: 14

Forks: 58

Open Issues: 21

Language: PHP

1.3 2012-11-28 09:16 UTC

README

This project is abandoned, if you want to take over it please send me a message on Twitter - @alexbilbie

Install via Packagist and Composer

Add the following into your composer.json file:

{
    "require": {
        "alexbilbie/mongoqb": "*"
    }
}

Then run

composer install

Install via Git

git clone git://git@github.com:alexbilbie/MongoQB

Download a zip/tarball

Download the latest version:

(Note the zip/tarball won't include any unit tests or composer files)

Unit tests

Master branch Build Status

Develop branch Build Status

The library currently has 100% unit test coverage. To run the unit test suite make sure you have MongoDB installed locally and running with no authentication and on the default port - 27017.

Then run:

composer update --dev
cd vendor/alexbilbie/mongoqb
phpunit -c tests/phpunit.xml

Example usage

Connect to the database

$qb = \MongoQB\Builder(array(
    'dsn'   =>  'mongodb://user:pass@localhost:27017/databaseName'
);

Insert a document

$qb->insert('collectionName', [
    'name'  =>  'Alex',
    'age'   =>  22,
    'likes' =>  ['whisky', 'gin']
]);

Update a single document

$qb
    ->where(['name' => 'Alex'])
    ->set([
        'country' => 'UK',
        'job' => 'Developer'
    ])
    ->push('likes', ['PHP', 'coffee'])
    ->update('collectionName');

Delete a single document

$qb
    ->where(['name' => 'Alex'])
    ->delete('collectionName');

Search for matching documents

$results = $qb
    ->whereGt('age', 21)
    ->whereIn('likes', ['whisky'])
    ->where('country', 'UK')
    ->get('collectionName');

If you find any bugs please file a report in the Issue tracker

If you find this software useful please consider donating, thank you =]

https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif