Commit 3d9d0cf4 authored by Jens Segers's avatar Jens Segers

Readme update

parent 278bc8ef
...@@ -8,132 +8,173 @@ Installation ...@@ -8,132 +8,173 @@ Installation
Add the package to your `composer.json` or install manually. Add the package to your `composer.json` or install manually.
{ ```yaml
{
"require": { "require": {
"jenssegers/mongodb": "*" "jenssegers/mongodb": "*"
} }
} }
```
Run `composer update` to download and install the package. Run `composer update` to download and install the package.
Add the service provider in `app/config/app.php`: Add the service provider in `app/config/app.php`:
'Jenssegers\Mongodb\MongodbServiceProvider', ```php
'Jenssegers\Mongodb\MongodbServiceProvider',
```
Usage Usage
----- -----
Tell your model to use the MongoDB model and a MongoDB collection: Tell your model to use the MongoDB model and a MongoDB collection:
use Jenssegers\Mongodb\Model as Eloquent ```php
use Jenssegers\Mongodb\Model as Eloquent
class MyModel extends Eloquent { class MyModel extends Eloquent {
protected $collection = 'mycollection'; protected $collection = 'mycollection';
} }
```
Configuration Configuration
------------- -------------
The model will automatically check the Laravel database configuration array in `app/config/database.php` for a 'mongodb' item. The model will automatically check the Laravel database configuration array in `app/config/database.php` for a 'mongodb' item.
'mongodb' => array( ```php
'mongodb' => array(
'host' => 'localhost', 'host' => 'localhost',
'port' => 27017, 'port' => 27017,
'database' => 'database', 'database' => 'database',
), ),
```
You can also specify the connection name in the model: You can also specify the connection name in the model:
class MyModel extends Eloquent { ```php
class MyModel extends Eloquent {
protected $connection = 'mongodb2'; protected $connection = 'mongodb2';
} }
```
Examples Examples
-------- --------
**Retrieving All Models** **Retrieving All Models**
$users = User::all(); ```php
$users = User::all();
```
**Retrieving A Record By Primary Key** **Retrieving A Record By Primary Key**
$user = User::find('517c43667db388101e00000f'); ```php
$user = User::find('517c43667db388101e00000f');
```
**Wheres** **Wheres**
$users = User::where('votes', '>', 100)->take(10)->get(); ```php
$users = User::where('votes', '>', 100)->take(10)->get();
```
**Or Statements** **Or Statements**
$users = User::where('votes', '>', 100)->orWhere('name', 'John')->get(); ```php
$users = User::where('votes', '>', 100)->orWhere('name', 'John')->get();
```
**Using Where In With An Array** **Using Where In With An Array**
$users = User::whereIn('age', array(16, 18, 20))->get(); ```php
$users = User::whereIn('age', array(16, 18, 20))->get();
```
**Using Where Between** **Using Where Between**
$users = User::whereBetween('votes', array(1, 100))->get(); ```php
$users = User::whereBetween('votes', array(1, 100))->get();
```
**Where null** **Where null**
$users = User::whereNull('updated_at')->get(); ```php
$users = User::whereNull('updated_at')->get();
```
**Order By** **Order By**
$users = User::orderBy('name', 'desc')->get(); ```php
$users = User::orderBy('name', 'desc')->get();
```
**Offset & Limit** **Offset & Limit**
$users = User::skip(10)->take(5)->get(); ```php
$users = User::skip(10)->take(5)->get();
```
**Distinct** **Distinct**
Distinct requires a field for which to return the distinct values. Distinct requires a field for which to return the distinct values.
$users = User::distinct()->get(array('name')); ```php
// or $users = User::distinct()->get(array('name'));
$users = User::distinct('name')->get(); // or
$users = User::distinct('name')->get();
```
Distinct can be combined with **where**: Distinct can be combined with **where**:
$users = User::where('active', true)->distinct('name')->get(); ```php
$users = User::where('active', true)->distinct('name')->get();
```
**Advanced Wheres** **Advanced Wheres**
$users = User::where('name', '=', 'John')->orWhere(function($query) ```php
$users = User::where('name', '=', 'John')->orWhere(function($query)
{ {
$query->where('votes', '>', 100) $query->where('votes', '>', 100)
->where('title', '<>', 'Admin'); ->where('title', '<>', 'Admin');
}) })
->get(); ->get();
```
**Group By** **Group By**
Selected columns that are not grouped will be aggregated with the $last function. Selected columns that are not grouped will be aggregated with the $last function.
$users = Users::groupBy('title')->get(array('title', 'name')); ```php
$users = Users::groupBy('title')->get(array('title', 'name'));
```
**Aggregation** **Aggregation**
$total = Order::count(); ```php
$price = Order::max('price'); $total = Order::count();
$price = Order::min('price'); $price = Order::max('price');
$price = Order::avg('price'); $price = Order::min('price');
$total = Order::sum('price'); $price = Order::avg('price');
$total = Order::sum('price');
```
Aggregations can be combined with **where**: Aggregations can be combined with **where**:
$sold = Orders::where('sold', true)->sum('price'); ```php
$sold = Orders::where('sold', true)->sum('price');
```
**Like** **Like**
$user = Comment::where('body', 'like', '%spam%')->get(); ```php
$user = Comment::where('body', 'like', '%spam%')->get();
```
**Inserts, updates and deletes** **Inserts, updates and deletes**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment