您的位置:首页 > 数据库 > Mongodb

yii 使用 mongodb 小工具 YiiMongoDbSuite

2015-07-20 17:11 501 查看
YiiMongoDbSuite下载链接: http://www.yiiframework.com/extension/yiimongodbsuite/
如果你的yii和mongodb它已经建立了一个良好的环境,和YiiMongoDbSuite它被放置protected/extensions

那么你protected/config/main.php 应该是这种

'import' => array(
...
'ext.YiiMongoDbSuite.*',
),

'components' => array(
...
'mongodb' => array(
'class'            => 'EMongoDB',
'connectionString' => 'mongodb://localhost',
'dbName'           => 'myDatabaseName',
'fsyncFlag'        => true,
'safeFlag'         => true,
'useCursor'        => false
),
),


然后依据你自己的环境稍加改动就可以

接下来開始写代码了看controller层代码, 凝视部分为採用原生的写法类似于你使用Yii::app()->db来获取数据库连接一样

class LoginController extends Controller
{

//依据id查找用户比如 http://localhost:8082/api/login/UserList/415824043082514432 注:先配置好vhost
public function actionUserList($num) {
$_result = UserMongo::model()->findUser($num);
//$collection = Yii::app()->mongodb->getDbInstance()->selectCollection('pcztest');
//$_result = $collection->find();
$this->sendResponse(200, $_result);
}

// http://localhost:8082/api/login public function doRestCreate($data) {
$model = new UserMongo();
$model->ac = 'ac1';
$model->bc = 'bc2';
$res = $model->save();

//$collection = Yii::app()->mongodb->getDbInstance()->selectCollection('pcztest');
//$content = array(
//	'ac'=>'叶子-吴佰清',
//	'bc'=>'吴佰清',
//	'ff'=>234,
//	'dd'=>4444,
//	'cc'=>'cc'
//);
//$res = $collection->insert($content);
var_dump($res);
}
}
然后是model代码

class UserMongo extends EMongoDocument
{
public $ac, $bc;
public static function model($className = __CLASS__) {
return parent::model($className);
}

public function getCollectionName()
{
return 'pcztest';
}
// public function tableName() {
// return '{{passport_users}}';
// }

public function findUser($n) {
$results = $this->findAll();
return $results;
}
}


须要注意的问题:採用model调用save的方式保存跟原生insert保存差别不大,可是在查询时你的model层定义了那些属性仅仅会查出对应的属性,而其它的则不会查出来

比如上面这个model仅仅定义了$ac, $bc;2如果你插入一个属性collection在一个场‘ff’如果在查询的时刻没有显示出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: