PHPackages                             nilportugues/eloquent-mongodb-repository - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. nilportugues/eloquent-mongodb-repository

ActiveLibrary[Database &amp; ORM](/categories/database)

nilportugues/eloquent-mongodb-repository
========================================

Eloquent MongoDB Repository implementation

2.2.1(10y ago)181183[1 issues](https://github.com/PHPRepository/php-eloquent-mongodb-repository/issues)MITPHP

Since Feb 18Pushed 10y agoCompare

[ Source](https://github.com/PHPRepository/php-eloquent-mongodb-repository)[ Packagist](https://packagist.org/packages/nilportugues/eloquent-mongodb-repository)[ Docs](http://nilportugues.com)[ RSS](/packages/nilportugues-eloquent-mongodb-repository/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)Dependencies (7)Versions (5)Used By (0)

Eloquent MongoDB Repository
===========================

[](#eloquent-mongodb-repository)

[![PHP7 Tested](https://camo.githubusercontent.com/f250d18bd8bc3e4d97eb4f6d3bc36c505feff5e58e01e08bab261617d9854606/687474703a2f2f7068702d6579652e636f6d2f62616467652f6e696c706f727475677565732f656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792f70687037302e737667)](https://camo.githubusercontent.com/f250d18bd8bc3e4d97eb4f6d3bc36c505feff5e58e01e08bab261617d9854606/687474703a2f2f7068702d6579652e636f6d2f62616467652f6e696c706f727475677565732f656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792f70687037302e737667)[![Build Status](https://camo.githubusercontent.com/44f4570cfadaeadbf25aa3e6713cf39912f658798850ec43cfeef85e5d4f86a9/68747470733a2f2f7472617669732d63692e6f72672f5048505265706f7369746f72792f7068702d656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792e737667)](https://travis-ci.org/PHPRepository/php-eloquent-mongodb-repository) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/6077bb1d887127f5c47f4e20a4f9a682a69cbcbd8d7cf5edef69f1284735d0cc/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6e696c706f727475677565732f7068702d656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/nilportugues/php-eloquent-mongodb-repository/?branch=master) [![SensioLabsInsight](https://camo.githubusercontent.com/499a5eb6807c039bebdd69c4f721cdab0412a7b849ff9a53b8cd6ade4c6b2647/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f64393933616464622d333861642d343834372d626434322d6661333566636661303339302f6d696e692e706e673f676f6c64)](https://insight.sensiolabs.com/projects/d993addb-38ad-4847-bd42-fa35fcfa0390) [![Latest Stable Version](https://camo.githubusercontent.com/7a5c659e34024cc452b9ff651c49a3c10e416592f463b4a7bd6e2f0ee99c08c4/68747470733a2f2f706f7365722e707567782e6f72672f6e696c706f727475677565732f656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792f762f737461626c653f)](https://packagist.org/packages/nilportugues/eloquent-mongodb-repository) [![Total Downloads](https://camo.githubusercontent.com/ae90d045143a7612ec01f3078c1587c1dcad5bcc043a97b373e764fdb78cc94c/68747470733a2f2f706f7365722e707567782e6f72672f6e696c706f727475677565732f656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792f646f776e6c6f6164733f)](https://packagist.org/packages/nilportugues/eloquent-mongodb-repository) [![License](https://camo.githubusercontent.com/97d92528dd61704c3cc1d1ec01f5dbd6d8c0eb7b35129333a3e6c3e106e420e4/68747470733a2f2f706f7365722e707567782e6f72672f6e696c706f727475677565732f656c6f7175656e742d6d6f6e676f64622d7265706f7369746f72792f6c6963656e73653f)](https://packagist.org/packages/nilportugues/eloquent-mongodb-repository)[![Donate](https://camo.githubusercontent.com/7b6de155df30b37b25eb5fec52f9213680c3dbf067dfb7d7e2850ac4096c7d05/68747470733a2f2f7777772e70617970616c6f626a656374732e636f6d2f656e5f55532f692f62746e2f62746e5f646f6e6174655f534d2e676966)](https://paypal.me/nilportugues)

Eloquent MongoDB Repository using *[nilportugues/repository](https://github.com/nilportugues/php-repository)* as foundation, using *[jenssegers/mongodb](https://github.com/jenssegers/laravel-mongodb)*.

Installation
------------

[](#installation)

Use [Composer](https://getcomposer.org) to install the package:

```
$ composer require nilportugues/eloquent-mongodb-repository
```

Why? Drivers and Multiple Implementations!
------------------------------------------

[](#why-drivers-and-multiple-implementations)

Using this implementation you can switch it out to test your code without setting up databases.

Doesn't sound handy? Let's think of yet another use case you'll love using this. `Functional tests` and `Unitary tests`.

No database connection will be needed, nor fakes. Using an `InMemoryRepository` or `FileSystemRepository` implementation will make those a breeze to code. And once the tests finish, all data may be destroyed with no worries at all.

**Available drivers:**

Also, if you feel like changing the repository implementation, no logic changes would be needed, as there are a set of drivers for you to use out of the box:

- `composer require nilportugues/repository-cache` for [caching](https://github.com/nilportugues/php-repository-cache).
- `composer require nilportugues/repository` for an [InMemoryRepository implementation](https://github.com/nilportugues/php-repository).
- `composer require nilportugues/filesystem-repository` for a [FileSystemRepository implementation](https://github.com/nilportugues/php-filesystem-repository).
- `composer require nilportugues/eloquent-repository` for a [SQL Eloquent implementation](https://github.com/nilportugues/php-eloquent-repository).
- `composer require nilportugues/doctrine-repository` for a [SQL Doctrine implementation](https://github.com/nilportugues/php-doctrine-repository).

Usage
-----

[](#usage)

To set up Eloquent you don't need Laravel or Lumen frameworks at all. This is how you use Eloquent in any project.

```
