Maison > développement back-end > PHP7 > le corps du texte

Partagez votre expérience en utilisant le pilote PHP7 MongoDB

藏色散人
Libérer: 2023-02-17 17:48:01
avant
2588 Les gens l'ont consulté

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 !

Partagez votre expérience en utilisant le pilote PHP7 MongoDB

php7 ne peut utiliser que le pilote Mongodb pour piloter mongodb.

Utilisez Mongodb Driver pour vous connecter à la base de données

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éfaut

Opération CURD de MongodbDriver

Au 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

  • Se connecter à 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();
}
Copier après la connexion
  • Requête conditionnelle, renvoyer au besoin
$cmd = [
    'find' => 'table', // collection表名
    'filter' => ['_id' => ['$gte' => 10, '$lt' => 20]],
    'projection' => ['name' => 1, 'email' => 1]
];
$res = $this-exec($cmd);
Copier après la connexion
  • 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 表示一旦失败立即返回
]
Copier après la connexion
  • 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行
    ]
]
Copier après la connexion
Copier après la connexion
  • Insérer des données
$cmd = [
    'delete' => 'table', // collection 表名
    'deletes' => [
        ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行
    ]
]
Copier après la connexion
Copier après la connexion
  • Grouper, trier
$cmd = [
    'aggregate' => 'table', // collection 表名
    'pipeline' => [
        '$group' => 'class',
        '$sort' => 'score'
    ]
]
Copier après la connexion
  • Lecture de l'état de la base de données
$cmd = [
    'replSetGetStatus' => 1,
]
Copier après la connexion

Classe auxiliaire BSON

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.

Exception

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!