任何人都可以帮助我指向一个教程,库等,这将允许我从CodeIgniter使用MongoDB吗?
我不确定它是否是"CodeIgniter方式",但我创建了一个CodeIgniter库,它扩展了Mongo类,并带有一个额外的属性来存储当前的数据库连接.
以下是我项目中的相关代码文件.
配置/ mongo.php
$config['mongo_server'] = null; $config['mongo_dbname'] = 'mydb';
库/ 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; } }
还有一个样本控制器
控制器/ 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在CodeIgniter社区中得到了很好的支持,花时间潜入:p
CodeIgniter MongoDB活动文档库
CodeIgniter MongoDB会话库
CodeIgniter MongoDB认证库
CodeIgniter MongoDB REST服务器库
CodeIgniter MongoDB基础模型
我喜欢Stephen Curran的例子,因为它很简单并且允许Mongo的接口而没有在Php中编写太多的功能,我倾向于发现巨大的抽象条款有时候对于我所追求的东西.
我已将其示例扩展为包含数据库身份验证.请访问:http://www.mongodb.org/display/DOCS/Security+and+Authentication以了解有关mongo身份验证的信息,不要忘记为要连接的Mongo Server启用身份验证.
我还将旧样式构造函数更改为__construct并处理Mongo Connection Exceptions,因为它们可以显示您的用户名和密码.
库/ Mongo.php
load->config('mongo'); // Fetch Mongo server and database configuration $server = $ci->config->item('mongo_server'); $username = $ci->config->item('mongo_username'); $password = $ci->config->item('mongo_password'); $dbname = $ci->config->item('mongo_dbname'); // Initialise Mongo - Authentication required try{ parent::__construct("mongodb://$username:$password@$server/$dbname"); $this->db = $this->$dbname; }catch(MongoConnectionException $e){ //Don't show Mongo Exceptions as they can contain authentication info $_error =& load_class('Exceptions', 'core'); exit($_error->show_error('MongoDB Connection Error', 'A MongoDB error occured while trying to connect to the database!', 'error_db')); }catch(Exception $e){ $_error =& load_class('Exceptions', 'core'); exit($_error->show_error('MongoDB Error',$e->getMessage(), 'error_db')); } } }
4> Phil Sturgeo..:在CodeIgniter中使用MongoDB与在其他任何地方使用MongoDB没有多大区别.
您可以将一个MongoDB库拼凑在一起,该库将在构造函数中连接并存储$ this-> conn以便稍后在方法中使用.
然后直接使用控制器中的conn属性或在MongoDB库中创建一些方法来为您执行此操作.
看看这里看看用于MongoDB的简单PHP教程.
我很乐意为你创建一个图书馆,但它会付出代价.:-P
如果您创建了一个好的库,请与社区分享.我喜欢借助MongoDB玩这个借口.:-)