Dancer::Plugin::Mango - MongoDB connections as provided by Mango.
STATUS
Tested in a production environment. It's a good idea to read the documentation for Mango as it's async. Which means you must be ready to handle this. In most of my code I'm using the loop function to wait for the server response. However, for inserts, I'm not waiting at all. Handy.
VERSION
version 0.41
SYNOPSIS
use Dancer;
use Dancer::Plugin::Mango;
get '/widget/view/:id' => sub {
my $mg = mango('mongoa');
my $db = $mg->db('foo');
my $cl = $db->collection('bar');
my $curs = $cl->find({ this => param('id') });
..
}
# or
get '/widget/view/:id' => sub {
my $mg = mango('mongoa')->db('foo')->collection('bar')->find({ this => param('id') });
..
}
DESCRIPTION
Dancer::Plugin::Mango implements the "Mango" driver from the Mojolicious team. It also uses some of the connection pooling features that the Dancer::Plugin::Database module implements. For the most part, read the Mango documentation for full implementation.
CONFIGURATON
Connection details will be taken from your Dancer application config file, and should be specified as follows:
plugins:
Mango:
host: "myhost"
port: 27017
db_name: "mydb"
username: "myuser"
password: "mypass"
w: 1
wtimeout: 1000
credentials:
[ mydb, myuser, mypass]
[ myotherdb, myotheruser, myotherpass]
or:
plugin:
Mango:
connections:
foohost:
host: "foohost"
port: 27017
db_name: "mydb"
barhost:
host: "barhost"
port: 27017
The attribute names are verbatim to the attribute names in Mango.
ACKNOWLEDGEMENTS
Thanks to Adam Taylor for the original Dancer::Plugin::Mongo. Thanks to the Dancer team for creating a product that keeps me gainfully employed. Thanks to the Mojolicious team for Mango.
This module is HEAVILY reliant on the original Dancer::Plugin::Database code. Most parts in here are unceremoniously copy-pasted from their code. Thanks guys for the work you're doing!
AUTHOR
Tyler Hardison <tyler@seraph-net.net>
CONTRIBUTORS
Collin Seaton cseaton <at> cpan <dot> org
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Tyler Hardison.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.