README.md

elixir-mongo
============
[![Build Status](https://travis-ci.org/checkiz/elixir-mongo.png?branch=master)](https://travis-ci.org/checkiz/elixir-mongo)
[![Hex Version](https://img.shields.io/hexpm/v/mongo.svg)](https://hex.pm/packages/mongo)
[![Hex Downloads](https://img.shields.io/hexpm/dt/bson.svg)](https://hex.pm/packages/mongo)

A [MongoDB](http://www.mongodb.org) driver in Elixir.

API entirely reviewed, see [CHANGELOG.md](https://github.com/checkiz/elixir-mongo/blob/master/CHANGELOG.md)

### Connecting

Example preparing access to the `anycoll` collection in the `test` db :
```elixir
# Connect the mongo server (by default port 27017 at 127.0.0.1)
mongo = Mongo.connect!
# Select the db to access  
db = mongo |> Mongo.db("test")  
# Select the db to access
anycoll = db |> Mongo.Db.collection("anycoll")  
```

### Wrappers for CRUD operations

Examples accessing the `anycoll` collection via CRUD operations see `Mongo.Find`


### Wrappers for Aggregate operations

Example of aggregate operation applied to the `anycoll` collection see `Mongo.Collection`

### Other commands

```elixir
# Authenticate against the db
db |> Mongo.auth("testuser", "123")`
# Retrieve the last error
db |> Mongo.getLastError
```

### Documentation

- [documentation](http://checkiz.github.io/elixir-mongo)

### Dependencies

- MongoDB needs a Bson encoder/decoder, this project uses the elixir-bson encoder/decoder. See [elixir-bson source repo](https://github.com/checkiz/elixir-bson) and its
[documentation](http://checkiz.github.io/elixir-bson)