php使用mongodb增删,PHP用MongoDb实现增删改查

这个代码段展示了如何在PHP中使用MongoDB驱动进行数据的添加、编辑、查询和删除操作。`addCommon()`用于插入数据,`updateCommon()`用于更新数据,`getCommon()`用于查询数据,而`delete()`用于物理删除数据。所有操作都涉及到MongoDB的BulkWrite和WriteConcern,确保了数据操作的原子性和一致性。
摘要由CSDN通过智能技术生成

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;

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值