


Script House a déjà publié plusieurs articles similaires, vous pouvez vous y référer.
Code principal?:
class NewMongodb { private $mongo; //NewMongodb連接 private $curr_db_name; private $curr_table_name; private $error; public $config; public function getInstance($mongo_server, $flag=array()) { static $NewMongodb_arr; if (empty($flag['tag'])) { $flag['tag'] = 'default'; } if (isset($flag['force']) && $flag['force'] == true) { $mongo = new NewMongodb($mongo_server); if (empty($NewMongodb_arr[$flag['tag']])) { $NewMongodb_arr[$flag['tag']] = $mongo; } return $mongo; } else if (isset($NewMongodb_arr[$flag['tag']]) && is_resource($NewMongodb_arr[$flag['tag']])) { return $NewMongodb_arr[$flag['tag']]; } else { $mongo = new NewMongodb($mongo_server); $NewMongodb_arr[$flag['tag']] = $mongo; return $mongo; } } /** * 構(gòu)造函數(shù) * 支持傳入多個(gè)mongo_server(1.一個(gè)出問題時(shí)連接其它的server 2.自動(dòng)將查詢均勻分發(fā)到不同server) * * 參數(shù): * $mongo_server:數(shù)組或字符串-array("127.0.0.1:1111", "127.0.0.1:2222")-"127.0.0.1:1111" * $connect:初始化mongo對象時(shí)是否連接,默認(rèn)連接 * $auto_balance:是否自動(dòng)做負(fù)載均衡,默認(rèn)是 * * 返回值: * 成功:mongo object * 失敗:false */ public function __construct($mongo_server, $connect=true, $auto_balance=true) { if (is_array($mongo_server)) { $mongo_server_num = count($mongo_server); if ($mongo_server_num > 1 && $auto_balance) { $prior_server_num = rand(1, $mongo_server_num); $rand_keys = array_rand($mongo_server,$mongo_server_num); $mongo_server_str = $mongo_server[$prior_server_num-1]; foreach ($rand_keys as $key) { if ($key != $prior_server_num - 1) { $mongo_server_str .= ',' . $mongo_server[$key]; } } } else { $mongo_server_str = implode(',', $mongo_server); } } else { $mongo_server_str = $mongo_server; } try { $this->mongo = new MongoClient($mongo_server, array('connect'=>$connect)); } catch (MongoConnectionException $e) { $this->error = $e->getMessage(); return false; } } /** * 連接NewMongodb server * * 參數(shù):無 * * 返回值: * 成功:true * 失?。篺alse */ public function connect() { try { $this->mongo->connect(); return true; } catch (MongoConnectionException $e) { $this->error = $e->getMessage(); return false; } } /** * select db * * 參數(shù):$dbname * * 返回值:無 */ public function selectDb($dbname) { $this->curr_db_name = $dbname; } /** * 創(chuàng)建索引:如索引已存在,則返回。 * * 參數(shù): * $table_name:表名 * $index:索引-array("id"=>1)-在id字段建立升序索引 * $index_param:其它條件-是否唯一索引等 * * 返回值: * 成功:true * 失?。篺alse */ public function ensureIndex($table_name, $index, $index_param=array()) { $dbname = $this->curr_db_name; $index_param['safe'] = 1; try { $this->mongo->$dbname->$table_name->ensureIndex($index, $index_param); return true; } catch (MongoCursorException $e) { $this->error = $e->getMessage(); return false; } } /** * 插入記錄 * * 參數(shù): * $table_name:表名 * $record:記錄 * * 返回值: * 成功:true * 失敗:false */ public function insert($table_name, $record) { $dbname = $this->curr_db_name; try { $this->mongo->$dbname->$table_name->insert($record, array('safe'=>true)); return true; } catch (MongoCursorException $e) { $this->error = $e->getMessage(); return false; } } /** * 查詢表的記錄數(shù) * * 參數(shù): * $table_name:表名 * * 返回值:表的記錄數(shù) */ public function count($table_name) { $dbname = $this->curr_db_name; return $this->mongo->$dbname->$table_name->count(); } /** * 更新記錄 * * 參數(shù): * $table_name:表名 * $condition:更新條件 * $newdata:新的數(shù)據(jù)記錄 * $options:更新選擇-upsert/multiple * * 返回值: * 成功:true * 失?。篺alse */ public function update($table_name, $condition, $newdata, $options=array()) { $dbname = $this->curr_db_name; $options['safe'] = 1; if (!isset($options['multiple'])) { $options['multiple'] = 0; } try { $this->mongo->$dbname->$table_name->update($condition, $newdata, $options); return true; } catch (MongoCursorException $e) { $this->error = $e->getMessage(); return false; } } /** * 刪除記錄 * * 參數(shù): * $table_name:表名 * $condition:刪除條件 * $options:刪除選擇-justOne * * 返回值: * 成功:true * 失敗:false */ public function remove($table_name, $condition, $options=array()) { $dbname = $this->curr_db_name; $options['safe'] = 1; try { $this->mongo->$dbname->$table_name->remove($condition, $options); return true; } catch (MongoCursorException $e) { $this->error = $e->getMessage(); return false; } } /** * 查找記錄 * * 參數(shù): * $table_name:表名 * $query_condition:字段查找條件 * $result_condition:查詢結(jié)果限制條件-limit/sort等 * $fields:獲取字段 * * 返回值: * 成功:記錄集 * 失?。篺alse */ public function find($table_name, $query_condition, $result_condition=array(), $fields=array()) { $dbname = $this->curr_db_name; $cursor = $this->mongo->$dbname->$table_name->find($query_condition, $fields); if (!empty($result_condition['start'])) { $cursor->skip($result_condition['start']); } if (!empty($result_condition['limit'])) { $cursor->limit($result_condition['limit']); } if (!empty($result_condition['sort'])) { $cursor->sort($result_condition['sort']); } $result = array(); try { while ($cursor->hasNext()) { $result[] = $cursor->getNext(); } } catch (MongoConnectionException $e) { $this->error = $e->getMessage(); return false; } catch (MongoCursorTimeoutException $e) { $this->error = $e->getMessage(); return false; } return $result; } /** * 查找一條記錄 * * 參數(shù): * $table_name:表名 * $condition:查找條件 * $fields:獲取字段 * * 返回值: * 成功:一條記錄 * 失?。篺alse */ public function findOne($table_name, $condition, $fields=array()) { $dbname = $this->curr_db_name; return $this->mongo->$dbname->$table_name->findOne($condition, $fields); } /** * 獲取當(dāng)前錯(cuò)誤信息 * * 參數(shù):無 * * 返回值:當(dāng)前錯(cuò)誤信息 */ public function getError() { return $this->error; } /*** NewMongodb類** examples: * $mongo = new NewMongodb("127.0.0.1:11223"); * $mongo->selectDb("test_db"); * 創(chuàng)建索引 * $mongo->ensureIndex("test_table", array("id"=>1), array('unique'=>true)); * 獲取表的記錄 * $mongo->count("test_table"); * 插入記錄 * $mongo->insert("test_table", array("id"=>2, "title"=>"asdqw")); * 更新記錄 * $mongo->update("test_table", array("id"=>1),array("id"=>1,"title"=>"bbb")); * 更新記錄-存在時(shí)更新,不存在時(shí)添加-相當(dāng)于set * $mongo->update("test_table", array("id"=>1),array("id"=>1,"title"=>"bbb"),array("upsert"=>1)); * 查找記錄 * $mongo->find("c", array("title"=>"asdqw"), array("start"=>2,"limit"=>2,"sort"=>array("id"=>1))) * 查找一條記錄 * $mongo->findOne("$mongo->findOne("ttt", array("id"=>1))", array("id"=>1)); * 刪除記錄 * $mongo->remove("ttt", array("title"=>"bbb")); * 僅刪除一條記錄 * $mongo->remove("ttt", array("title"=>"bbb"), array("justOne"=>1)); * 獲取Mongo操作的錯(cuò)誤信息 * $mongo->getError(); */ }
Pour plus de classes d'opérations php mongodb avec quelques exemples simples, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans différents scénarios d'application, le choix de MongoDB ou Oracle dépend des besoins spécifiques: 1) Si vous devez traiter une grande quantité de données non structurées et ne pas avoir d'exigences élevées pour la cohérence des données, choisissez MongoDB; 2) Si vous avez besoin de cohérence des données strictes et de requêtes complexes, choisissez Oracle.

Les méthodes de mise à jour des documents dans MongoDB incluent: 1. Utilisez des méthodes UpdateOne et UpdateMany pour effectuer des mises à jour de base; 2. Utilisez des opérateurs tels que $ SET, $ Inc et $ push pour effectuer des mises à jour avancées. Avec ces méthodes et opérateurs, vous pouvez gérer et mettre à jour efficacement les données dans MongoDB.

La flexibilité de MongoDB se reflète dans: 1) capable de stocker des données dans n'importe quelle structure, 2) utiliser le format BSON et 3) prendre en charge les opérations complexes de requête et d'agrégation. Cette flexibilité le fait bien fonctionner lorsqu'il s'agit de structures de données variables et est un outil puissant pour le développement d'applications modernes.

La fa?on de visualiser toutes les bases de données de MongoDB est d'entrer la commande "showdbs". 1. Cette commande affiche uniquement des bases de données non vides. 2. Vous pouvez basculer la base de données via la commande "Utiliser" et insérer des données pour l'afficher. 3. Faites attention aux bases de données internes telles que "local" et "config". 4. Lorsque vous utilisez le pilote, vous devez utiliser la méthode "listDatabases ()" pour obtenir des informations détaillées. 5. La commande "db.stats ()" peut afficher les statistiques détaillées de la base de données.

L'introduction dans le monde moderne de la gestion des données, le choix du bon système de base de données est crucial pour tout projet. Nous sommes souvent confrontés à un choix: devrions-nous choisir une base de données basée sur des documents comme MongoDB, ou une base de données relationnelle comme Oracle? Aujourd'hui, je vous emmènerai dans la profondeur des différences entre MongoDB et Oracle, vous aider à comprendre leurs avantages et leurs inconvénients et partagent mon expérience en les utilisant dans de vrais projets. Cet article vous amènera à commencer par des connaissances de base et à approfondir progressivement les fonctionnalités principales, les scénarios d'utilisation et les performances de ces deux types de bases de données. Que vous soyez un nouveau gestionnaire de données ou un administrateur de base de données expérimenté, après avoir lu cet article, vous serez sur la fa?on de choisir et d'utiliser MongoDB ou Ora dans votre projet

La commande pour créer une collection dans MongoDB est DB.CreateCollection (nom, options). Les étapes spécifiques incluent: 1. Utilisez la commande de base db.CreateCollection ("MyCollection") pour créer une collection; 2. Définir les paramètres d'options, tels que Cappage, Size, Max, StorageGine, Validator, ValidationLevel et Validation, tels que DB.CreateCollection ("MycoppedCollection

MongoDB est une base de données NoSQL qui convient pour gérer de grandes quantités de données non structurées. 1) Il utilise des documents et des collections pour stocker les données. Les documents sont similaires aux objets JSON et les collections sont similaires aux tables SQL. 2) MongoDB réalise des opérations de données efficaces grace à l'indexation et à la rupture de B-Tree. 3) Les opérations de base comprennent des documents de connexion, d'insertion et de requête; Les opérations avancées telles que les pipelines agrégés peuvent effectuer un traitement complexe de données. 4) Les erreurs courantes incluent une mauvaise gestion de l'objectif et une mauvaise utilisation des index. 5) L'optimisation des performances comprend l'optimisation de l'index, le fragment, la séparation en lecture-écriture et la modélisation des données.

MongoDB n'est pas destiné à refuser. 1) Son avantage réside dans sa flexibilité et son évolutivité, ce qui convient au traitement des structures de données complexes et des données à grande échelle. 2) Les inconvénients incluent une utilisation élevée de la mémoire et une introduction tardive du support des transactions acides. 3) Malgré des doutes sur les performances et le support des transactions, MongoDB est toujours une puissante solution de base de données pilotée par les améliorations technologiques et la demande du marché.
