Tôi không chắc đó có phải là "CodeIgniter way" hay không nhưng tôi đã tạo một thư viện CodeIgniter mở rộng lớp Mongo với một thuộc tính bổ sung để lưu trữ kết nối cơ sở dữ liệu hiện tại.
Đây là các tệp mã liên quan từ dự án của tôi.
config / mongo.php
$config['mongo_server'] = null;
$config['mongo_dbname'] = 'mydb';
thư viện / 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;
}
}
Và một bộ điều khiển mẫu
bộ điều khiển / 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);
}
}