PHP7之mongodb增删改查操作 Posted on 2019-08-27 | In PHP7 | Visitors | Words count in article: 477 | Reading time ≈ 2 实现参考自菜鸟教程 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111<?phpnamespace Admin\Util;use MongoDB\Driver\Manager;use MongoDB\Driver\BulkWrite;use MongoDB\Driver\Query;use MongoDB\Driver\WriteConcern;use MongoDB\Driver\Command;class MongoCrud{ public static $mongo = null; /** * 新增数据到mongo * @param $collection 表名 * @param $document 新增的数据 * @return \MongoDB\Driver\WriteResult */ public static function insertToMongo($collection, $document){ if (self::$mongo == null){ self::$mongo = new Manager("mongodb://user:password@127.0.0.1:27017/test"); } $bulk = new BulkWrite; $bulk->insert($document); $writeConcern = new WriteConcern(WriteConcern::MAJORITY, 1000); $result = self::$mongo->executeBulkWrite("test.{$collection}", $bulk, $writeConcern); return $result; } /** * 根据id删除mongodb中的数据 * @param $collection 表名 * @param $id 需要删除的id * @return \MongoDB\Driver\WriteResult */ public static function deleteToMongoById($collection, $id){ if (self::$mongo == null) self::$mongo = new Manager("mongodb://user:password@127.0.0.1:27017/test"); $bulk = new BulkWrite; $bulk->delete(['id' => $id]); $writeConcern = new WriteConcern(WriteConcern::MAJORITY, 1000); $result = self::$mongo->executeBulkWrite("test.{$collection}", $bulk, $writeConcern); return $result; } /** * 查询数据 * @param $collection 表名 * @param $filter 过滤条件 * @param $options 排序,分页等参数 * @return array * @throws \MongoDB\Driver\Exception\Exception */ public static function queryToMongo($collection, $filter, $options){ if (self::$mongo == null) self::$mongo = new Manager("mongodb://user:password@127.0.0.1:27017/test"); $query = new Query($filter, $options); $cursor = self::$mongo->executeQuery("test.{$collection}", $query); $cursor = $cursor->toArray(); $count = count($cursor); for ($i = 0; $i < $count; $i++){ $cursor[$i] = json_decode(json_encode($cursor[$i]), true); } return $cursor; } /** * 获取表中数据的数量 * @param $collection 表名 * @param array $where 过滤条件 * @return int 数量 * @throws \MongoDB\Driver\Exception\Exception */ public static function count($collection, $where = []){ if (self::$mongo == null) self::$mongo = new Manager("mongodb://user:password@127.0.0.1:27017/test"); $command = new Command(['count' => $collection,'query'=>$where]); $result = self::$mongo->executeCommand('test',$command); $res = $result->toArray(); $cnt = 0; if ($res) { $cnt = $res[0]->n; } //setAdminLog("表中的数目:{$cnt}"); return $cnt; } /** * 根据id来更新mongodb的数据 * @param $collection 表名 * @param $document 需要更新的文档 * @param $id * @return \MongoDB\Driver\WriteResult */ public static function updateDocumentById($collection, $document, $id){ if (self::$mongo == null) self::$mongo = new Manager("mongodb://user:password@127.0.0.1:27017/test"); $bulk = new BulkWrite; $bulk->update(['id' => $id], ['$set' => $document], ['multi' => false, 'upsert' => false] ); $writeConcern = new WriteConcern(WriteConcern::MAJORITY, 1000); $result = self::$mongo->executeBulkWrite("test.{$collection}", $bulk, $writeConcern); return $result; }} -------------本文结束您的阅读与肯定是我持续装*的最大动力-------------