Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
MongoDB database driver for CakePHP
PHP

This branch is 79 commits ahead, 1 commit behind ichikaway:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Model
Test/Case
docs
samples
.coveralls.yml
.gitignore
.travis.yml
README.markdown
coveralls.json

README.markdown

mongoDB datasource for CakePHP

Build Status Coverage Status

Requirements

Installation

this repository should be installed in the same way as any other plugin.

To install the driver for use in a single application:

cd my/app/Plugin
git clone git://github.com/ichikaway/cakephp-mongodb.git Mongodb

To install the driver for use in any/multiple application(s)

# where ROOT is the name of the directory parent to the base index.php of CakePHP.
cd ROOT/Plugin
git clone git://github.com/ichikaway/cakephp-mongodb.git Mongodb

Sample Code

To use this DB driver, install (obviously) and define a db source such as follows:

<?php
//app/Config/bootstrap.php
CakePlugin::load('Mongodb');


// app/Config/database.php
class DATABASE_CONFIG {
    public $default = array(
        'datasource' => 'Mongodb.MongodbSource',
        'host' => 'localhost',
        'database' => 'blog',
        'port' => 27017,
        'prefix' => '',
        'persistent' => 'true',
        /* optional auth fields
        'login' => 'mongo', 
        'password' => 'awesomeness',
        'replicaset' => array('host' => 'mongodb://hoge:hogehoge@localhost:27021,localhost:27022/blog', 
                              'options' => array('replicaSet' => 'myRepl')
                     ),
        */
    );

    // To make sure all tests are passing create the following entry in app/Config/database.php
    public $test = array(
        'datasource' => 'Mongodb.MongodbSource',
        'database' => 'test_mongo',
        'host' => 'localhost',
        'port' => 27017,
    ); 
}

More detail of replicaset in wiki: https://github.com/ichikaway/cakephp-mongodb/wiki/How-to-connect-to-replicaset-servers

Model files need to have mongoSchema property - or make use of the schemaless behavior.

Mongo uses a primary key named "_id" (cannot be renamed). It can be any format you like but if you don't explicitly set it Mongo will use an automatic 24 character (uu)id.

Before you start, you may find it useful to see a model sample. There are also some sample controller actions: find,save,delete,deleteAll,updateAll note that your controller code needs no specific code to use this datasource.

Author

Yasushi Ichikawa (ichikaway)

Andy Dawson (AD7six)

Contributors

Predominant : Cleanup code, add documentation

Jrbasso : Cleanup code

tkyk : Fix bug, Add some function.

Reference

Reference code, Thank you!

Nate Abele's lithium mongoDB datasource

Joél Perras' divan

Something went wrong with that request. Please try again.