这篇文章介绍的内容是关于分享下mongodb封装的几个方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
这个是我写的php5.6的 ,但是php7以上就不是这样的实现了,大家要是有php7mongodb的封装类可以发我连接,我看看
getConnect(DBSERVER, DBUSER, DBPASS, DBPORT); $this->database = $mongo->$database;
} /**
* 数据库单例方法
* @param $server
* @param $user
* @param $password
* @param $port
* test 测试
* @return Mongo
*/
/*public function getConnect($server, $user, $password, $port)
{
// echo "mongodb://{$server}:{$port}";die;
// $mongo = new MongoClient("mongodb://{$server}:{$port}");
$mongo = new MongoClient("mongodb://{$server}:{$port}");
return $mongo;
}*/
/**
* 数据库单例方法
* @param $server
* @param $user
* @param $password
* @param $port
* @return Mongo
*/
public function getConnect($server, $user, $password, $port) {
if (isset($this->mo)) { return $this->mo;
} else { if (!empty($server)) { if (!empty($port)) { if (!empty($user) && !empty($password)) { $this->mo = new MongoClient("mongodb://{$user}:{$password}@{$server}:{$port}");
} else { $this->mo = new MongoClient("mongodb://{$server}:{$port}");
}
} else { $this->mo = new MongoClient("mongodb://{$server}");
}
} else { $this->mo = new MongoClient();
} return $this->mo;
}
} /**
* 查询表中所有数据
* @param $table
* @param array $where
* @param array $sort
* @param string $limit
* @param string $skip
* @return array|int
*/
public function getAll($table, $where = array(), $sort = array(), $limit = '', $skip = '') {
if (!empty($where)) { $data = $this->database->$table->find($where);
} else { $data = $this->database->$table->find();
} if (!empty($sort)) { $data = $data->sort($sort);
} if (!empty($limit)) { $data = $data->limit($limit);
} if (!empty($skip)) { $data = $data->skip($skip);
} $newData = array(); while ($data->hasNext()) { $newData[] = $data->getNext();
} if (count($newData) == 0) { return 0;
} return $newData;
} /**
* 查询表中所有数据,将_id 对象变成数组
* @param $table
* @param array $where
* @param array $sort
* @param string $limit
* @param string $skip
* @return array
*/
public function getAllArray($table, $where = array(), $sort = array(), $limit = '', $skip = '') {
if (!empty($where)) { $data = $this->database->$table->find($where);
} else { $data = $this->database->$table->find();
} if (!empty($sort)) { $data = $data->sort($sort);
} if (!empty($limit)) { $data = $data->limit($limit);
} if (!empty($skip)) { $data = $data->skip($skip);
} $newData = array(); while ($data->hasNext()) { $newData[] = $data->getNext();
} if (count($newData) == 0) { return 0;
} foreach ($newData as $key => $val) { $id = $val['_id']->{'$id'}; $newData[$key]['_id'] = $id;
} return $newData;
} /**
* 查询指定一条数据
* @param $table
* @param array $where
* @return int
*/
public function getOne($table, $where = array()) {
if (!empty($where)) { $data = $this->database->$table->findOne($where);
} else { $data = $this->database->$table->findOne();
} return $data;
} /**
* 统计个数
* @param $table
* @param array $where
* @return mixed
*/
public function getCount($table, $where = array()) {
if (!empty($where)) { $data = $this->database->$table->find($where)->count();
} else { $data = $this->database->$table->find()->count();
} return $data;
} /**
* 直接执行mongo命令
* @param $sql
* @return array
*/
public function toExcute($sql) {
$result = $this->database->execute($sql); return $result;
} /**
* 分组统计个数
* @param $table
* @param $where
* @param $field
*/
public function groupCount($table, $where, $field) {
$cond = array( array( '$match' => $where,
), array( '$group' => array( '_id' => '$' . $field, 'count' => array('$sum' => 1),
),
), array( '$sort' => array("count" => -1),
),
); $this->database->$table->aggregate($cond);
} /**
* 删除数据
* @param $table
* @param $where
* @return array|bool
*/
public function toDelete($table, $where) {
$re = $this->database->$table->remove($where); return $re;
} /**
* 插入数据
* @param $table
* @param $data
* @return array|bool
*/
public function toInsert($table, $data) {
$re = $this->database->$table->insert($data); return $re;
} /**
* 更新数据
* @param $table
* @param $where
* @param $data
* @return bool
*/
public function toUpdate($table, $where, $data) {
$re = $this->database->$table->update($where, array('$set' => $data)); return $re;
} /**
* 获取唯一数据
* @param $table
* @param $key
* @return array
*/
public function distinctData($table, $key, $query = array()) {
if (!empty($query)) { $where = array('distinct' => $table, 'key' => $key, 'query' => $query);
} else { $where = array('distinct' => $table, 'key' => $key);
} $data = $this->database->command($where); return $data['values'];
}
}?>相关推荐:
BIWEB 门户版几经周折,最终与大家见面了。BIWEB门户版建立在ArthurXF5.8.3底层上,有了更加强大的功能。 BIWEB WMS v5.8.3 (2010.1.29) 更新功能如下: 1.修正了底层getInfo方法中的调用参数,做到可以根据字段进行调用。 2.修正了栏目安装和卸载后,跳转链接的错误。 3.修正所有栏目分类系统,提交信息页面错误。 4.新增后台删除信息后仍停留原分









