Maison > Article > développement back-end > Explication détaillée des étapes de fonctionnement de la base de données PHP+mongoDB
Cette fois, je vous apporte une explication détaillée des étapes de fonctionnement de la base de données PHP+mongoDB, et quelles sont les précautions pour la base de données PHP+mongoDB. Voici des cas pratiques, voyons. jetez un oeil.
La base de données utilisée dans le développement récent du projet est la base de données mongodb. Parce que la société de l'éditeur vient d'utiliser la base de données mongodb, il n'y a pas de classe d'opération de base de données mongodb encapsulée à utiliser auparavant, donc l'éditeur l'utilise lui-même dans le. projet Il encapsule une classe d'opérations de base de données mongodb, et j'aimerais la partager avec vous, j'espère que vous ne critiquerez pas les parties insatisfaisantes. Comme nous le savons tous, mongodb est un représentant typique de la base de données NoSQL et est recherché par de nombreux développeurs. Il a été particulièrement populaire ces dernières années. La popularité de mongodb n'est pas sans raison. brève introduction à MongoDB. MongoDB est un produit entre une base de données relationnelle et une base de données non relationnelle. C'est la base de données non relationnelle la plus riche en fonctionnalités et ressemble le plus à une base de données relationnelle. La structure de données qu'il prend en charge est très lâche et est un format bjson de type json, il peut donc stocker destypes de données plus complexes. La plus grande caractéristique de Mongo est que le langage de requête qu'il prend en charge est très puissant. Sa syntaxe est quelque peu similaire au langage de requête orienté objet Il peut presque implémenter la plupart des fonctions similaires aux requêtes à table unique dans les bases de données relationnelles. , et il prend également en charge le traitement des données.
Il se caractérise par des performances élevées, un déploiement facile, une utilisation facile et un stockage de données très pratique. Les principales caractéristiques fonctionnelles sont : Stockage orienté ensemble, facile à stocker des données de type objet. Mode gratuit.
Prise en charge des requêtes dynamiques.
Prend en charge l'indexation complète, y compris les objets internes.
Requête d'assistance.
Prend en charge la réplication et la récupération après échec.
Utilisez un stockage de données binaires efficace, y compris les objets volumineux (tels que les vidéos, etc.).
Gérer automatiquement la fragmentation pour prendre en charge l'évolutivité au niveau du cloud computing
Prend en charge RUBY, PYTHON, JAVA, C++, PHP et d'autres langages.
Le format de stockage des fichiers est BSON (une extension de JSON)
Peut être consulté via le réseau
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
<?php /** * PHP操作mongodb数据库操作类 */ class Database { protected $database = ''; protected $mo; /** * 构造方法 */ public function construct() { $server = DBSERVER; $user = DBUSER; $password = DBPASS; $port = DBPORT; $database = DBNAME; $mongo = $this->getInstance($server, $user, $password, $port); $this->database = $mongo->$database; } /** * 数据库单例方法 * @param $server * @param $user * @param $password * @param $port * @return Mongo */ public function getInstance($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 Mongo("mongodb://{$user}:{$password}@{$server}:{$port}"); } else { $this->mo = new Mongo("mongodb://{$server}:{$port}"); } } else { $this->mo = new Mongo("mongodb://{$server}"); } } else { $this->mo = new Mongo(); } 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; } /** * 查询指定一条数据 * @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']; } } ?>Lecture recommandée :
Le compte public PHP WeChat distribue de manière aléatoire la fonction d'enveloppe rouge en espèces
PHP réalise le partage de session sous équilibrage de charge Explication détaillée du cas (avec code)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!