NAME

Plack::Session::Store::MongoDB - MongoDB based session store for Plack apps.

VERSION

version 0.2

SYNOPSIS

use Plack::Builder;
use Plack::Middleware::Session;
use Plack::Session::Store::MongoDB;

my $app = sub {
	return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello Foo' ] ];
};

builder {
	enable 'Session',
	store => Plack::Session::Store::MongoDB->new(
		db_name => 'myapp',
		coll_name => 'myapp_sessions',	# defaults to 'session'
		host => 'mongodb.myhost.com',	# defaults to 'localhost'
		port => 27017			# this is the default
	);
	$app;
};

DESCRIPTION

This module implements a MongoDB storage for session data. This has the advantage of being a simple (no need to generate a database scheme or even create the necessary database/collections), yet powerful backend.

It requires, of course, a running MongoDB daemon to work with.

METHODS

new( %params )

Creates a new instance of this module. Requires a hash of parameters containing 'db_name' with the name of the MongoDB database to use, and optionally a 'host' parameter with the hostname of the server where the MongoDB daemon is running (will default to 'localhost'), a 'port' parameter defining the port where the MongoDB daemon is listening (will default to 27017, the default MongoDB port), and a 'coll_name' parameter with the name of the collection in which sessions will be stored (will default to 'sessions').

fetch( $session_id )

Fetches a session object from the database.

store( $session_id, \%session_obj )

Stores a session object in the database. If a database error occurs when attempting to store the session, this method will die.

remove( $session_id )

Removes the session object from the database. If a database error occurs when attempting to remove the session, this method will generate a warning.

AUTHOR

Ido Perlmuter, <ido at ido50 dot net>

BUGS

Please report any bugs or feature requests to bug-plack-session-store-mongodb at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Plack-Session-Store-MongoDB. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Plack::Session::Store::MongoDB

You can also look for information at:

ACKNOWLEDGEMENTS

Daisuke Maki, author of Plack::Session::Store::DBI, on which this module is based.

Tests adapted from the Plack::Middleware::Session distribution.

LICENSE AND COPYRIGHT

Copyright 2010 Ido Perlmuter.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.