Mogodb在cakephp中的应用

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

MongoDB datasource的两种方式:

  1.   下载一
  2.   下载二(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里接收的是一个数组,数组键为你字段名称。
下面是我测试的成果,有数据为证:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值