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

目前項目使用的是yii框架,使用mongo拓展效率會更加高些,在網上搜了下,主流的是YiiMongoDbSuite,但是對應的中文文檔不全,在這邊寫個小的測試程序
mongodb的安裝和配置請參考上篇博文

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

爲了方便查看mongodb數據,win下可使用MongoVUE遠程查看

按照說明安裝即可,安裝後連接需要查看的mongodb

這樣就可以簡單愉快的查看mongodb的數據情況

二,下載YiiMongoDbSuite

YiiMongoDbSuite可以在yii官網進行下載:

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

下載後將拓展相關的放到yii項目拓展目錄下,並在配置文件中進行加載即可使用

三,YiiMongoDbSuite的簡單使用

  1. YiiMongoDbSuite的配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    'import' => array(
          'ext.YiiMongoDbSuite.*',
        ),
     
        'components' => array(
          ...
          'mongodb' => array(
            'class'            => 'EMongoDB',
            'connectionString' => 'mongodb://localhost',
            'dbName'           => 'myDatabaseName',
            'fsyncFlag'        => true,
            'safeFlag'         => true,
            'useCursor'        => false
          ),
        ),
    
  2. 構建簡單測試用例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    <?php
    
    class 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), 新增

1
2
3
4
$user = new User();
$user->username = 'dandand';
$user->email = '[email protected]';
$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), 多條數據條件查詢

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

3), 修改

1
2
3
4
5
$model = User::model()->find();             //找到要修改的記錄
$model->email = '[email protected]';          //要修改的記錄
$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), 刪除

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章