NAME
MongoX - DSL sugar for MongoDB
VERSION
version 0.001
SYNOPSIS
# quick bootstrap, add connection and switch to db:'test'
use MongoX { host => 'mongodb://127.0.0.1',db => 'test' };
# common way
use MongoX;
#register default connection;
add_connection host => '127.0.0.1';
# switch to default connection;
use_connection;
# use database 'test'
use_db 'test';
#add/register another connection with id "remote2"
add_connection host => '192.168.1.1',id => 'remote2';
# switch to this connection
use_connection 'remote2';
#get a collection object (from the db in current context)
my $foo = get_collection 'foo';
# use 'foo' as default context collection
use_collection 'foo';
# use context's db/collection
say 'total rows:',context_collection->count();
my $id = context_collection->insert({ name => 'Pan', home => 'Beijing' });
my $gridfs = context_db->get_gridfs;
...
DESCRIPTION
MongoX is a light wrapper to MongoDB driver, it provide a versy simple but handy DSL syntax. It also will provide some usefull helpers like builtin mongoshell, you can quick work with MongoDB.
ATTRIBUTES
context_db
my $db = context_db;
Return current MongoDB::Database object in context;
context_connection
my $con = context_connection;
Return current MongoDB::Connection object in context.
context_collection
my $col = context_collection;
Return current MongoDB::Collection object in context, you can replace the object with "use_collection".
METHODS
use_connection
# create a default connection
use_connection;
# use another connection with id:'con2'
use_connection 'con2';
Switch to given connection, set the context connection to this connection.
use_db
use_db 'foo';
Switch to the database, set the context database to this database;
use_collection
use_collection 'user'
Set 'user' collection as context collection.
add_connection
add_connection id => 'default', host => 'mongodb://127.0.0.1:27017'
Register a connnection with the id, if omit, will add as default connection. All options exclude 'id' will direct pass to MongoDB::Connection.
boot
boot host => 'mongodb://127.0.0.1',db => 'test'
# same as:
add_connection host => 'mongodb://127.0.0.1', id => 'default';
use_connection;
use_db 'test';
Boot is equivalent to call add_connection,use_connection,use_db.
OPTIONS
MongoX takes a set of options for the class construction at compile time as a HASH parameter to the "use" line.
As a convenience, you can pass the default connection parameters and default database, then when MongoX import, it will apply these options to "add_connection" and "use_db", so the following code:
use MongoX { host => 'mongodb://127.0.0.1',db => 'test' };
is equivalent to:
use MongoX;
add_connection host => 'mongodb://127.0.0.1';
use_connection;
use_db 'test';
AUTHOR
Pan Fan(nightsailer) <nightsailer at gmail dot com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Pan Fan(nightsailer).
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.