mongopool: mongodb + poolboy
A MongoDB connection pool server application.
[
{mongopool,[
{retry,20},
{pools,[
{mypool,[
{size,10},
{max_overflow,30}
], [
{database,<<"mydb">>},
{hostname,mongohostname},
{username,"dbuser"},
{password,"dbpassword"},
{w_mode,safe}
]}
]}
]},
]
Note: if you doesn't enable the authorization on mongodb, you don't need to
specifyusername
andpassword
.
The optionretry
specify how many times the workers should try to connect
if it's startup step fail.
It's very useful when the erlang server is faster than mongodb server
(especially the case when mongodb start the first time).
Note: you can specify all the pool that you need.
To start the pool:
application:ensure_all_started(mongopool).
The API available is simply a proxy to mongodb-erlang
API.
Instead of pass theConnection
,you pass the pool name.
E.g. to find inside a collection:
MyDocument=mongopool_app:find_one(
mypool,Collection,#{<<"_id">>=><<"mydocument_id">>}).
$ utils/rebar3 compile
MongoDB-Erlang >= 0.8.2
change API and inglobe the use ofpoolboy
.
So, after this version,mongopool
became incompatible and useless.
For that reason, if you want use a recent release of the driver, please use directlyMongoDB-Erlang.
Thanks for useMongoPool
.