php7 mongoDB 简单封装
m_mgdb.php
/**
* mongo db 简单 封装
*
* @author color_wind
*/
final class m_mgdb {
private static $ins = [];
private static $def = 'default';
private $_conn = null;
private $_db = null;
private static $_config = [
'default' => ['url' => 'mongodb://localhost:27017','dbname' => 'mydb1'],
'mdb1' => ['url' => 'mongodb://10.0.0.12:27017','dbname' => 'mydb2'],
];
/**
* 创建
* @param string $confkey
* @return \m_mgdb
*/
static function i($confkey = NULL) {
if (!$confkey) {
$confkey = self::$def;
}
if (!isset(self::$ins[$confkey]) && ($conf = self::$_config[$confkey])) {
$m = new m_mgdb($conf);
self::$ins[$confkey] = $m;
}
return self::$ins[$confkey];
}
private function __construct(array $conf) {
$this->_conn = new MongoDB\Driver\Manager($conf['url']);
$this->_db = $conf['dbname'];
}
function query($collname,array $filter, array $options){
$query = new MongoDB\Driver\Query($filter, $options);
return $cursor = $this->_conn->executeQuery("{$this->_db}.{$collname}", $query);
}
function insert($collname,array $param) {
$bulk = new MongoDB\Driver\BulkWrite();
foreach($param as $v){
if(is_array($v)){
$bulk->insert($v);
}
}
return $this->write($collname, $bulk);
}
function write($collname,$bulk) {
return $this->_conn->executeBulkWrite("{$this->_db}.{$collname}", $bulk);
}
function command(array $param) {
$cmd = new MongoDB\Driver\Command($param);
return $this->_conn->executeCommand($this->_db, $cmd);
}
/**
* 获取当前mongoDB Manager
* @return MongoDB\Driver\Manager
*/
function getMongoManager() {
return $this->_conn;
}
}