5

我有一个内置于 codeigniter 并使用cloudcontrol托管的 Web 应用程序。我使用普通的 MySQL 数据库进行所有数据持久性,现在除了 MySQL 数据库之外,我还想使用 mongodb 数据库。

我想使用 mongodb 作为作业队列来在我的工作人员和我的应用程序服务器之间保留消息。我从本教程中获得了这样做的灵感:http: //www.captaincodeman.com/2011/05/28/simple-service-bus-message-queue-mongodb/

  1. 这可能吗(同时使用两种不同类型的数据库——有/没有破解codeigniter,我认为是)

  2. 有什么技巧可以做到这一点?

- - 编辑 - -

我已经在我的 CI 项目中包含了这个库: https ://github.com/alexbilbie/codeigniter-mongodb-library

当我尝试通过以下方式加载它时:$this->load->library('mongo_db'); 我遇到了这个: 在此处输入图像描述

我不确定如何让 mysql 和 mongodb 一起工作......

- - 编辑 - -

没关系我上面的问题,我不正确地设置了配置文件并混淆了错误......

4

1 回答 1

6

是的,这是可能的,开箱即用。

您需要在配置中定义两组,一组用于 mysql,一组用于 mongodb。然后,在您的应用程序中,您可以按组名加载这些数据库。

在您的 confugration.php 中:

$db['mysql']['hostname'] = "localhost";
$db['mysql']['username'] = "root";
$db['mysql']['password'] = "";
$db['mysql']['dbdriver'] = "mysql";
//... (full config omitted for brevity)

$db['mongodb']['hostname'] = "localhost";
$db['mongodb']['username'] = "root";
$db['mongodb']['password'] = "";
$db['mongodb']['dbdriver'] = "mongodb";
//... (full config omitted for brevity)

然后您将按如下方式加载数据库:

$mysqlDB = $this->load->database('mysql', TRUE);
$mongoDB = $this->load->database('mongodb', TRUE); 

查看有关如何连接到多个数据库以及如何指定配置组的用户指南。

于 2011-09-23T08:27:09.040 回答