Mongrel - A MongoDB Database Abstraction Layer This module exists for a single, simple purpose, which is to provide a simple database abstraction layer. MongoDB, or any other NoSQL database, relies on the application layer to enforce data integrity, so Mongrel uses the Oogly data validation framework to provide you with a simple way to create codebased schemas, have data validation built-in, etc. See Oogly on CPAN for more details. package MyDatabase::Users; use Mongrel; sub new { return table @_, { fields => { name => {}, email => {}, login => {}, password => {}, } }; } 1; my $db = MyDatabase::Users->new( host => ... ); $db->input({ name => 'The New Guy' }); if ($db->input->validate) { $db->insert($db->input->{params}); }