The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MongoDBI - A proper ODM (Object-Document-Mapper) for MongoDB

VERSION

version 0.0.6

SYNOPSIS

package CDDB;

use MongoDBI;


app {


    # shared mongodb connection
    database => {
        name => 'mongodbi_cddb',
        host => 'mongodb://localhost:27017'
    },


    # load child doc classes
    classes => {
        self => 1, # loads CDDB::*
        load => ['Other::Namespace']
    }


};


1;


package main ;


use DateTime;


my $cddb = CDDB->new;


my $cds  = $cddb->class('album'); # grabs CDDB::Album


# find cds released during or after the year 2000
my $year_2000 = DateTime->now->set(year => 2000, month => 1, day => 1);

my $search = $cds->search->where('released$gt' => $year_2000)->query;


while (my $cd = $search->next) {


    print $cd->title, "\n";


}

DESCRIPTION

Why MongoDB? "MongoDB has the best features of document, key/value and relational databases."

MongoDBI is an Object-Document-Mapper (ODM) for MongoDB. It allows you to create Moose-based classes to interact with MongoDB databases. Born out of the frustration of waiting for someone else to create a proper MongoDB modeling framework, I decided to bite-the-bullet and try my hand at it.

At-a-glance, most will enjoy MongoDBI for its ability to easily model classes while leveraging the power of MongoDB's schemaless and expeditious document-based design, dynamic queries, and atomic modifier operations.

Also noteworthy is MongoDBI's ease-of-use, chainable search facilities (filters), automated indexing, moose-integration (inheritance support, etc), lean document updates via dirty field tracking, and ability for each class to be configured to use a different database and connection, etc.

Note! This library is still in its infancy and subject to change in code and in the overall design. The POD (documentation) may also be lacking in certain areas, for additional insight you may examine the accompanying tests.

This class, MongoDBI, sub-classes MongoDBI::Application, please review that module for more usage information.

AUTHOR

Al Newkirk awncorp@cpan.org

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by awncorp.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.