Maison > Article > développement back-end > Partagez votre expérience en utilisant le pilote PHP7 MongoDB
Cet article est écrit par la colonne du didacticiel PHP7 pour partager avec vous l'expérience de l'utilisation du pilote PHP7 MongoDB. J'espère qu'il sera utile aux amis dans le besoin !
php7 ne peut utiliser que le pilote Mongodb pour piloter mongodb.
J'ai refusé lorsque j'ai commencé à utiliser Mongodb Driver. Lorsque j'ai regardé la documentation officielle, je n'ai vu qu'une rangée de classes et de méthodes membres inintelligibles. Après une longue navigation, je n'ai pas trouvé de mots-clés tels que find, update, delete, etc., et même des mots-clés légèrement plus compliqués. tels que les jeux de réplicas et l'authentification des utilisateurs n'étaient pas connus. Comment se connecter à la base de données.
Heureusement, la documentation ne manque pas complètement. Cliquez sur MongodbDriverManger::constructor et vous verrez plusieurs paramètres de construction
$uri
en forme de mongo://[host:port,host:port,host:port]/[dbname]?[username=aa&password=bb&replicaSet=cc]
$uriOptions
quel est ce qui précède ?La chaîne de paramètres suivante peut être écrite ici$driverOptions
Autres options telles que les paramètres de lecture et d'écriture par défautAu début, je pensais que ce pilote était anti-humain. Il n'y avait pas de mots tels que rechercher, mettre à jour, supprimer, etc. dans le document. Il n'y avait qu'une classe Command
et un Query类
.
La classe de requête est légèrement meilleure et fournit certaines options de requête.
En fait, toutes les opérations sur la base de données Mongo peuvent être effectuées via la classe Command. La documentation du pilote PHP n'introduit pas de commandOptions
spécifique.
C'est précisément parce que je suis nouveau sur mongodb que j'ai l'impression que ce pilote est extrêmement bizarre et anti-humain, et qu'il n'y a aucun moyen de démarrer.
La clé pour utiliser ce pilote est d'utiliser la classe Command pour construire un commandOption
Et cela commandOption
nous oblige à en apprendre davantage à partir de la documentation officielle de mongodb
MANUEL MONGODB - Commandes de base de données
Toutes les opérations, ajout de données, suppression, modification, tri par agrégation, état de la base de données, authentification des utilisateurs, etc. peuvent être effectués via ces commandes. Voici quelques exemples
$this->_conn = new MongoDB\Driver\Manager('mongodb://localhost:27017/test'); $this->_db = 'test'; // execute command. function exec($opts) { $cmd = new MongoDB\Driver\Command($opts); $res = $this->_conn->executeCommand($this->_db, $cmd); return $res->toArray(); }
$cmd = [ 'find' => 'table', // collection表名 'filter' => ['_id' => ['$gte' => 10, '$lt' => 20]], 'projection' => ['name' => 1, 'email' => 1] ]; $res = $this-exec($cmd);
$cmd = [ 'update' => 'table', // collection 表名 'updates' => [ ['q' => [_id => ['$lt' => 10]], 'u' => ['status' => 0], 'upsert'=>0,'multi'=>1], ['q' => [_id => ['$gte' => 10]], 'u' => ['status' => 1], 'upsert'=>0,'multi'=>1], ], 'ordered' => 1, // 是否依次执行updates语句,true表示执行失败后继续后面的语句,false 表示一旦失败立即返回 ]
$cmd = [ 'delete' => 'table', // collection 表名 'deletes' => [ ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行 ] ]
$cmd = [ 'delete' => 'table', // collection 表名 'deletes' => [ ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行 ] ]
$cmd = [ 'aggregate' => 'table', // collection 表名 'pipeline' => [ '$group' => 'class', '$sort' => 'score' ] ]
$cmd = [ 'replSetGetStatus' => 1, ]
Les plus utiles sont bien sûr MongoDBBSONJavascript
et MongoDBBSONObjectId
, qui sont à passer dans la fonction script javascript et à utiliser l'objectid de mongodb respectivement.
Toutes les exceptions générées par MongoDBDriver peuvent être capturées avec MongoDBDriverExceptionException
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!