有人能帮我找到一个教程、库等,让我可以从CodeIgniter使用MongoDB吗?

推荐答案

我不确定这是否是"CodeIgniter方式",但我创建了一个CodeIgniter库,它用一个额外的属性扩展Mongo类来存储当前的数据库连接.

以下是我的项目中的相关代码文件.

config/mongo.php

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

libraries/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;
    }
}

和一个样本控制器

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

Mongodb相关问答推荐

MongoDB:删除键上有条件的对象元素

GO:如何在MongoDB中区分空字符串和nil

在MondoDB中:将对象数组从切片索引数组切片,并通过聚合推入数组

如何从集合中移除所有匹配的数组项?

如何判断 mongodb 聚合,该文档具有键,该键是一个数组,其第二个元素是否存在?

在延迟函数中重用 context.WithTimeout

聚合 $accumulator + $project

从 kubectl exec 获取返回值到 powershell 脚本

MongoDB - 分组并找到前 N 个

mongodb:多键索引 struct ?

MongoDB:插入重复键更新

findOneAndUpdate 和 findOneAndReplace 有什么区别?

`fields cannot be identical'和''` mongoimport错误

MongoDB - 我如何找到另一个集合中的文档未引用的所有文档

如何使用 MongoDB 和 Mongoid 在 Rails 3 上进行适当的数据库测试 (TDD)

MongoDB 数据库,相当于 SELECT column1, column2 FROM tbl

mongo - Ruby连接问题

MongoDB 查询:字段不存在或具有特定值

MongoDb 连接被拒绝

如何在mongoose的嵌套填充中 Select 特定字段