Blogger Information
Blog 5
fans 0
comment 0
visits 3317
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP用MongoDb实现增删改查
瞬间
Original
564 people have browsed it

use app\utils\Mongo;

use MongoDB\BSON\ObjectId;

class BaseModel

{

/*

     * 添加数据公用函数

     * @param $data 新增的数据

     * @param $database 数据库.集合

     * @return Boolean

     * */

public function addCommon($data,$database){

$client = Mongo::get_instance()->get_client();

$bulk = new \MongoDB\Driver\BulkWrite(['order' => true]);

$bulk->insert($data);

$writeConcern = new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY, 1000);

$res = $client->executeBulkWrite($database, $bulk, $writeConcern);

if($res->getInsertedCount()>=1){

return true;

}else{

return false;

}

}

/*

* 编辑公用函数

* @param $id 主键id

* @param $data 要编辑的数据

* @param $database 数据库.集合

* @return Boolean

* */

public function updateCommon($id,$data,$database){

$mongo=Mongo::get_instance()->get_client() ;

$writeConcern = new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY, 1000);

$bulk = new \MongoDB\Driver\BulkWrite;

$bulk->update(

['_id' => new ObjectID($id)],

['$set' => $data],

['multi' => true, 'upsert' => false]

//multi为true,则满足条件的全部修改,默认为true,如果改为false,则只修改满足条件的第一条

//upsert为 true:表示不存在就新增

);

$result = $mongo->executeBulkWrite($database, $bulk, $writeConcern);

if($result->getModifiedCount() >=1){

return true;

}else{

return false;

}

}

/*

* 数据库查询公用函数

* @param $f筛选条件

* @param $op查询内容

* @param $database 数据库.集合

* @return json

* */

public function getCommon($f,$op,$database){

$mongo = Mongo::get_instance()->get_client();

$filter = $f;

$options = $op;

$query = new \MongoDB\Driver\Query($filter,$options);

$rs = $mongo->executeQuery($database,$query);

$arr = $rs->toArray();

return json_encode($arr);

}

/*

* 删除数据公用函数(物理删除)

* @param $where 条件

* @param $database 数据库.集合

* @return Boolean

* */

public function delete($where,$database){

$mongo = Mongo::get_instance();

$bulk = new \MongoDB\Driver\BulkWrite;

$bulk->delete($where); //填写删除的条件

$writeConcern = new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY, 1000);

//执行上面的删除语句

$result = $mongo->get_client()->executeBulkWrite($database, $bulk, $writeConcern);

return $result->getDeletedCount();

}

/*

* 编辑公用函数--多条件

* @param $where

* @param $data

* @param $database

* */

public function updateWhere($where, $data, $database){

$mongo = Mongo::get_instance()->get_client();

$writeConcern = new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY, 1000);

$bulk = new \MongoDB\Driver\BulkWrite;

$bulk->update(

$where,

['$set' => $data],

['multi' => true, 'upsert' => false]

);

$result = $mongo->executeBulkWrite($database, $bulk, $writeConcern);

if($result->getModifiedCount() >=1){

return true;

}else{

return false;

}

}

}


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post