Current section
Files
Jump to
Current section
Files
lib/mongo.ex
defmodule Mongo do
use Mongo.Helpers
@moduledoc """
[MongoDB](http://www.mongodb.org) driver in Elixir
See [elixir-mongo source repo](https://github.com/checkiz/elixir-mongo)
"""
@doc """
Connects to a Mongo Database Server, see module `Mongo.Server`for details
"""
defdelegate connect, to: Mongo.Server
@doc """
Connects to a Mongo Database Server, see module `Mongo.Server`for details
"""
defdelegate connect(host, port), to: Mongo.Server
@doc """
Connects to a Mongo Database Server, see module `Mongo.Server`for details
"""
defdelegate connect(opts), to: Mongo.Server
defbang connect
defbang connect(opts)
defbang connect(host, port)
@doc """
Assigns radom ids to a list of documents when `:_id` is missing
[%{a: 1}] |> Mongo.assign_id
[%{_id: ObjectId(...), a: 1}]
"""
defdelegate assign_id(docs), to: Mongo.Server
@doc """
Assigns sequential ids to a list of documents when `:_id` is missing
[%{a: 1}] |> Mongo.assign_id(mongo)
[%{_id: ObjectId(...), a: 1}]
"""
defdelegate assign_id(docs, mongo), to: Mongo.Server
defmodule Error do
defexception [:message]
def exception(message) when is_bitstring(message), do: %Error{message: message}
def exception(reason: reason), do: %Error{message: inspect(reason)}
def exception(reason: reason, context: context) do
%Error{message: inspect(reason) <> "\n" <> inspect(context)}
end
end
end