MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB e CodeIgniter

Non sono sicuro che sia il "modo CodeIgniter", ma ho creato una libreria CodeIgniter che estende la classe Mongo con una proprietà aggiuntiva per memorizzare la connessione al database corrente.

Ecco i file di codice rilevanti dal mio progetto.

config/mongo.php

$config['mongo_server'] = null;
$config['mongo_dbname'] = 'mydb';

biblioteche/Mongo.php

class CI_Mongo extends Mongo
{
    var $db;

    function CI_Mongo()
    {   
        // Fetch CodeIgniter instance
        $ci = get_instance();
        // Load Mongo configuration file
        $ci->load->config('mongo');

        // Fetch Mongo server and database configuration
        $server = $ci->config->item('mongo_server');
        $dbname = $ci->config->item('mongo_dbname');

        // Initialise Mongo
        if ($server)
        {
            parent::__construct($server);
        }
        else
        {
            parent::__construct();
        }
        $this->db = $this->$dbname;
    }
}

E un controller di esempio

controller/posts.php

class Posts extends Controller
{
    function Posts()
    {
        parent::Controller();
    }

    function index()
    {
        $posts = $this->mongo->db->posts->find();

        foreach ($posts as $id => $post)
        {
            var_dump($id);
            var_dump($post);
        }
    }

    function create()
    {
        $post = array('title' => 'Test post');
        $this->mongo->db->posts->insert($post);
        var_dump($post);
    }
}