# MongoL **Repository Path**: coderhwz/MongoL ## Basic Information - **Project Name**: MongoL - **Description**: MongoDB Model - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2014-09-21 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #MongoL ## 简介 ``` |~src/ | |-MongoLAutoIncrement.php 主键自增管理 | |-MongoLCollection.php 数据集 | |-MongoLConnection.php Mongo连接管理器 | |-MongoLException.php 异常 | |-MongoLModel.php 模型父类 | `-MongoLQueryBuilder.php 查询构建器,数据操作 ``` ## 使用 ### 引入Autoload.php `require_once('Autoload.php')` 所有MongoL库文件自动加载 ### 创建连接 ```php 'localhost', 'port'=>27017, 'dbname'=>'users', ); new MongoLConnection($config,'连接名'); // 获得连接 $connection = MongoLConnection::get('连接名'); $connection->database; // users ``` ### 定义Model ```php hasOne('Profile','_id','user_id'); } /** * 用户的订单信息 * * @return MongoLCollection of Order Model * @author hwz **/ public function orders() { return $this->hasMany('Order','_id','user_id'); } } //end of file ``` ### 使用API 数据操作 ```php username = "John Meson"; $user->phone = '1515812899'; $user->status = 1; // 插入 $user->save(); // 从表插入 $user->profile()->save(array('age'=>33)); // 从表批量插入 $user->orders()->batchSave(array( array('goodsname'=>'Note Book 1',fee=>100), array('goodsname'=>'Note Book 2',fee=>100), array('goodsname'=>'Note Book 3',fee=>100), )); var_export($user['_id']); // 更新 $user->phone = '123'; // 从表数据删除 1对1 $user->profile->delete(); // 从表批量删除数据 1对多 $count = $user->orders()->delete(); //删除 $user->delete(); // 计数增加,更新至数据库 User::where(array('_id'=>1))->increase('view'); User::where(array('_id'=>1))->decrease('view'); ``` 统一使用静态方式查询 ```php profile); // 方法访问返回 Order 的查询构建器 var_export($user->orders()); $users = User::where(array('status'=>1))->get('username _id'); $users1 = User::where(array('status'=>1))->skip(10)->take(10); $pagenationData = User::where(array('status'=>1))->pagenation(); ``` 数据集操作 ```php isEmpty() ){ foreach($users => $user){ $users->status = 2; $user->save(); } } //数量 $users->count(); // 获得最后一个 $users->last(); // 获得第一个 $users->first(); // 获得某列 $users->column('phone'); ``` ## 未完成 1. 数据验证 2. 软删除 3. 生命周期内的缓存