yii的mongodb拓展YiiMongoDbSuite的配置与使用

来源:互联网 发布:孕妇能用的洗面奶知乎 编辑:程序博客网 时间:2024/06/05 20:31

目前项目使用的是yii框架,使用mongo拓展效率会更加高些,在网上搜了下,主流的是YiiMongoDbSuite,但是对应的中文文档不全,在这边写个小的测试程序
mongodb的安装和配置请参考上篇博文

一, 使用客户端工具查看mongodb

为了方便查看mongodb数据,win下可使用MongoVUE远程查看

按照说明安装即可,安装后连接需要查看的mongodb

这样就可以简单愉快的查看mongodb的数据情况

二,下载YiiMongoDbSuite

YiiMongoDbSuite可以在yii官网进行下载:

http://www.yiiframework.com/extension/yiimongodbsuite/

下载后将拓展相关的放到yii项目拓展目录下,并在配置文件中进行加载即可使用

三,YiiMongoDbSuite的简单使用

  1. YiiMongoDbSuite的配置

    123456789101112131415
    'import' => array(      'ext.YiiMongoDbSuite.*',    ),     'components' => array(      ...      'mongodb' => array(        'class'            => 'EMongoDB',        'connectionString' => 'mongodb://localhost',        'dbName'           => 'myDatabaseName',        'fsyncFlag'        => true,        'safeFlag'         => true,        'useCursor'        => false      ),    ),
  2. 构建简单测试用例

    123456789101112131415161718192021222324252627282930313233343536373839404142
    <?phpclass User extends EMongoDocument{    public $username;    public $email;    public $personal_number;    public $first_name;    public $last_name;    public $client;    public $company;    public function getCollectionName()    {        return 'users';    }    public function primaryKey()    {        return 'personal_number';    }    public function rules() {        return array(            array('personal_number, first_name, last_name', 'required'),        );    }    public function attributeLabels()    {        return array(            'username'            => 'UserName',            'email'                => 'EMail',            'personal_number'    => 'PN',            'first_name'        => 'First Name',            'last_name'            => 'Last Name',            'client'            => 'Client',            'company'            => 'Company',        );    }    public static function model($className = __CLASS__)    {        return parent::model($className);    }}

三,使用YiiMongoDbSuite进行简单的curd

1), 新增

1234
$user = new User();$user->username = 'dandand';$user->email = '123@example.com';$user->save(); // This will store document with user data into MongoDB collection

2), 查询

a),查询单条数据(第一条)

1
$user = User::model()->find();

a), 单条数据条件查询

1
$model = User::model()->findByAttributes(array('username'=>'dandand'));

c), 单条数据按主键查询

1
$model = User::model()->findByPk('_id');

b), 多条数据条件查询

12345
$criteria = new EMongoCriteria;$criteria->username('==', 'dandand') // modulo => personal_number % 10 == 0       ->sort('firstName',EMongoCriteria::SORT_ASC)       ->limit(10);$users = User::model()->findAll($criteria);

3), 修改

12345
$model = User::model()->find();             //找到要修改的记录$model->email = '123@example.com';          //要修改的记录$model->last_name = 'value';$model->validate(array('email', 'last_name'));             //数据过滤$users = $model->update(array('email', 'last_name'), true /* <- second parameter indicates to use partial update mechanism */);        //数据修改

4), 删除

0 0
原创粉丝点击