ITPub博客

首页 > 大数据 > Hadoop > [MongoDb技术]Mogodb在cakephp中的应用

[MongoDb技术]Mogodb在cakephp中的应用

Hadoop 作者:三国英雄杀 时间:2013-04-19 21:04:00 0 删除 编辑

CakePHP是一个非常受欢迎的PHP框架,它有专门的 MongoDB datasource 类包。这里专门有一篇介绍CakePHP框架如何使用MongoDB存储的文章:Using MongoDb with CakePHP。具体访问地址:http://mark-story.com/posts/view/using-mongodb-with-cakephp。

MongoDB datasource的两种方式:

 下载一

 下载二(git下载方式)

现在具体说一下MongoDB在CakePHP中的配置与应用:

类库存放

我们可以存放在Vendor或者Plugin目录下,然后再在AppController中引用就可以,具体就不赘述!

配置

在/config/database.php中配置MongoDB:

[php] view plaincopyprint?

 public $mongo = array(  

       'datasource' => 'Mongodb.MongodbSource',  

       'persistent' => false,  

       'host' => '127.0.0.1',  

       'login' => 'root',  

       'password' => 'root',  

       'port' => 27017,  

       'database' => 'mongoblog',  

       'prefix' => '',  

       //'encoding' => 'utf8',  

   );  

AppController引用

[php] view plaincopyprint?

CakePlugin::load('Mongodb');//这是把类库放在了Plugin目录下的引用方式  

class AppController extends Controller {  

   public function beforeFilter(){  

       parent::beforeFilter();  

       $module = $this->name;  

       $action = $this->action;  

       }  

}  

我们可以在Controller中组织好我们需要Insert或update等的数据。然后再访问调用Model。下面再看一下Model是怎样的?

Model中的应用

看段代码

[php] view plaincopyprint?

class Recodelog extends AppModel{  

       /**

    * 模型名称

    *

    * @var string

    * @access public

    */  

   public $name = "Recodelog"; //类名称  

   /**

    * 无默认使用表

    *

    * @var string

    * @access public

    */  

   public $useTable = 'logrecode';//你要访问的MongoDB中库的Collection  

   /**

    * 默认使用数据库配置

    *

    * @var string

    * @access public

    */  

   public $useDbConfig = 'mongo';  //使用的数据库  

   public $primaryKey = '_id';  

   //Collection的字段结构与类型  

   public $mongoSchema = array(  

           'user_id' => array('type'=>'integer'),  

           'user_name' => array('type'=>'string'),  

           'operate_module_name'=>array('type'=>'string'),  

           'operate_function_name'=>array('type'=>'string'),  

           'operate_ip'=>array('type'=>'string'),  

           'operate_time'=>array('type'=>'datetime')  

   );  

   /**

    *  

    * @param $recodeInfo

    */  

   public function addLogRecode($recodeInfo = array()){  

       $flag = $this->save(array('user_id'=>$recodeInfo['id'], 'user_name'=>$recodeInfo['username'], 'operate_module_name'=>$recodeInfo['module'],  

       'operate_function_name'=>$recodeInfo['action'],'operate_ip'=>$recodeInfo['ip'],'operate_time'=>$recodeInfo['time']));  

       return $flag;  

   }  

}  

这段代码包括了MongoDB中Collection的选择及添加一条记录。可以看到用的是save方法。具体可以看手册:

及实例

这样就应该知道save这个方法怎么用了!其实save里接收的是一个数组,数组键为你字段名称。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26253835/viewspace-1111921/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-09-07