Mogodb在cakephp中的應用
來源:程序員人生 發布時間:2014-09-11 08:19:54 閱讀次數:4189次
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:
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引用
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中的應用
看段代碼
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里接收的是一個數組,數組鍵為你字段名稱。
下面是我測試的成果,有數據為證:
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈