Maison >développement back-end >tutoriel php >Introduction à l'utilisation du pilote MongoDB en PHP7
Cet article présente principalement l'utilisation du pilote MongoDB dans PHP7. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
php7 ne peut utiliser que Mongodb. pilote pour conduire 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
C'est la chaîne de paramètres après ? ci-dessus, qui peut être écrite ici
$driverOptions
Autres options telles que la lecture et l'écriture par défaut paramètres
C'est là que je pensais que ce pilote était anti-humain au début. Il n'y a pas de mots comme trouver, mettre à jour, supprimer, etc. le document. Il n’y a qu’une seule Command
classe 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
Connexion à la base de données
$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(); }
Requête conditionnelle, retour sur demande
$cmd = [ 'find' => 'table', // collection表名 'filter' => ['_id' => ['$gte' => 10, '$lt' => 20]], 'projection' => ['name' => 1, 'email' => 1] ]; $res = $this-exec($cmd);
Modifier l'enregistrement
$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 表示一旦失败立即返回 ]
Supprimer l'enregistrement, la limite ne peut être que 1 ou 0 !
$cmd = [ 'delete' => 'table', // collection 表名 'deletes' => [ ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行 ] ]
Insérer des données
$cmd = [ 'delete' => 'table', // collection 表名 'deletes' => [ ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行 ] ]
Regroupement, tri
$cmd = [ 'aggregate' => 'table', // collection 表名 'pipeline' => [ '$group' => 'class', '$sort' => 'score' ] ]
Lire l'état de la base de données
$cmd = [ 'replSetGetStatus' => 1, ]
Les plus utiles sont bien sûr MongoDBBSONJavascript
et MongoDBBSONObjectId
, qui doivent respectivement passer dans la fonction script javascript et utiliser l'objectid de mongodb.
Toutes les exceptions générées par MongoDBDriver peuvent être capturées à l'aide de MongoDBDriverExceptionException
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun , plus Veuillez faire attention au site Web PHP chinois pour le contenu connexe !
Recommandations associées :
PHP utilise Azure Storage Blob pour télécharger des fichiers
imagettfbbox et imagettftext en php encapsulent automatiquement le texte et Méthode images
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!