MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB et CodeIgniter

Je ne sais pas si c'est la "méthode CodeIgniter", mais j'ai créé une bibliothèque CodeIgniter qui étend la classe Mongo avec une propriété supplémentaire pour stocker la connexion actuelle à la base de données.

Voici les fichiers de code pertinents de mon projet.

config/mongo.php

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

bibliothèques/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;
    }
}

Et un exemple de contrôleur

controllers/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);
    }
}